mIRC is not broken, so there's nothing to "fix". In any case, a good "workaround" would be:

Code:
on *:CONNECT:.timerMYCHAN 1 0 15 join #mychan
on me:*:JOIN:.timerMYCHAN off


mIRC doesn't really need this behaviour builtin since its far more easily scriptable and is kind of a very niche behaviour. What if someone wanted this same thing for invite only channels but NOT temporarily unavail. ones, for instance? What if someone wanted the retry time to be 2 minutes, not 15 seconds? There's simply too much config that can easily be handled by ~2 lines of script.