In short: if you want to use a custom timestamp at the beginning of the line, you MUST do it through the use of -t. mIRC has no other way of identifying if a line begins with a timestamp except by keeping track of where -t is used, which is why it ends up duplicating what, to YOU, seems like a timestamp, but to mIRC is just a single timestamp followed by arbitrary log data. This is not a bug, this is merely an illustration of the fact that the DATA echo'd in /echo -a <DATA HERE> is really just arbitrary data. Whether or not you fill DATA with $timestamp is something mIRC does not know or care about.

FWIW, you could use /timestamp to temporarily set the timestamp format for the line, use /echo -t so that mIRC properly registers the line as being timestamped, and then reset the timestamp to the previous format:

Code:
//var %ts = $timestampfmt | timestamp -f CUSTOMFORMAT | echo -at using custom format | timestamp -f %ts


- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"