Hmmm... I do get what you are saying here - this needs to be scalable. But here are a few suggestions to mitigate this...
As much as I would love to implement a state-based, multi-command-numeric-event-dependent, time-delayed, ircd-behaviour-reliant, and, may I say, convoluted method to get around something that should be really simple... there are too many variables here and, based on past experience, it will probably not turn out well. The solution needs to be simple.
Adding more options to the interface is also not a solution. All that does is make the interface more complicated for bad reasons. This is something basic that should just work, not require an understanding by new users of how IRC works in order to tweak it to make it work in a reasonable way.
In the mean-time, I am going to add a check for the words "seconds" and "identify" for nickserv notices to ignore during logon. My apologies to the rest of the world's 7000 languages :-]
I am pretty sure SASL resolves this issue.