mIRC actually resets your idle when you press enter in an editbox (as well as other interactions), NOT when you send a message. For example, typing //timer 1 5 /msg $active hello will reset your idle instantly and NOT reset your idle when the message is actually sent 5 seconds later by the timer.

mIRC's idle measurement is not intended to match the server's idle time at all. The server idle time is reset by sending a PRIVMSG or certain actions like joining a channel. Notices don't even reset it, nor do most other server commands.

I don't think it's appropriate to prevent mIRC's local idle value from resetting, even if you halt ON INPUT.