Seb: If ...

1. Windows is an event driven operating system; and
2. If mIRC is designed to work under Windows and is therefore designed to be event driven; and
3. An in finite loop prevents events being processed, including a close event

Then ... mIRC hanging is an inevitable consequence.

Ditto for any other single threaded application in an infinite loop. In other words its not just mIRC.

Yes - you could argue that mIRC should be multi-threaded, but that brings its own complications - complications which might well be surmountable in a tool without scripting capability (though infinite loops would not then be possible anyway), but are almost certainly insurmountable in a product like mIRC with scripts.

After all if an interpreted language like python cannot solve the multi-threading problem, I can't see why mIRC should be any different.

If you don't like mIRC there are many alternative IRC clients out there - including one which professes to have some sort of mIRC scripting compatibility. Good luck.