Correct me if I am wrong:
As far as I know, mIRC does not allow 2 scripts to be executed synchronously. So there's always one, and only one, current event.
It shouldn't be hard to maintain a list of event specific identifiers to be saved (in a global array?) which is then added to the context of incoming SendMessages.
The same might work for local variables, too.