I asume that (after the ISP disconnect and subsequent reconnect), if you do NOT hit disconnect, but try to send some command to the server (or some message to a channel), THEN the disconnect is detected by mIRC?
If this is the case, the in-built "check for timeout" feature is not working properly for you. You could try some custom script instead, akin to this one
: a timer sending every-so-often a message to the server, e.g. a ping.