He already stated that this issue is caused by the bad implementation of a feature on server side, should he add a workaround (hack) for every dumb little thing some server adds? The 3 second delay was workaround enough, make it 10 seconds if that's what it takes. If the delay solution is overly simple, then the other solutions mentioned before are way overly complicated.
IRC is full of badly implemented features. That is real life.
But this is not (really) one of them - nickserv is asynchronous - which is a reasonable thing if you want people to be able to start off unauthorised and then authorise at a later date. (SASL by comparison assumes you authorise at connect time.)
When you have an async service, you need to have functionality that takes that into account.
Yes - we could have a fully scripted solution and not have mIRC provide any nickserv authentication functionality - and then expect every user to write the script necessary. But Khaled chose to provide nickserv asynchronous authentication , so this is fixing up an issue with it properly.