I am personally fine with subjecting everybody to a 3 second delay in auto joining channels.
I have been looking into this on Freenode. The nickserv identification message takes about 6 seconds to arrive after the end of the MOTD. So mIRC would need to wait at least 6 seconds - but probably more like 10 seconds to be safe. That said, it appears that servers queue the identification request in the background while processing other server messages for that user, so the amount of time it takes to identify a user seems to depend on how busy a server is - identification could take 60 seconds for all we know.
I could make mIRC wait for a NOTICE from "NickServ" with the words "You are now identified for" - but this would not be ideal because this may not be standard across networks, and it uses English, which will not work on non-English networks.
It would not be enough to wait for just any NOTICE from NickServ. When I connect to Freenode, I almost always receive a "-NickServ- This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>" before I receive a second NOTICE "You are now identified". So mIRC would need to check the wording.