Check my first reply, using the -h switch didn't make much difference at all. Also, to the OP, using the -c switch may make everything add up in the end, but it still won't be very accurate during execution because...
If you specify the -c switch, this makes mIRC "catch up" a timer by executing it more than once during one interval if the real-time interval isn't matching your requested interval.
So obviously the timers in my examples are executing several times in some intervals to catch up rather than executing once per ms interval as it seems you want.