Yes, in my example the hash table would be lost if mIRC crashed.
Like how some scripters practice only saving ON EXIT. The idea solution to prevent data-loss would be to periodically force a save (with a timer), or use a queue and once the queue was empty, then save. Which I would imagine mIRC does the latter for it's internal cache to prevent data-loss in an uncontrollable situation such as a crash, the process being killed, or any situation which would prevent it from performing normal exit operations.