Bug fixes aren't ugly hacks - some new features are (like the auto-hide message pane). Bug fixes are well... patches for the ugly hacks :-P Of course, good fixes involve a complete refactoring of certain modules.
Anyway, It's not that the event queues are not emptied on exit - it's that some event loops become recursive due to the use of wxYield, unless you enable the "crash protection" tweak. But then again, I'm not sure if you have it enabled.
Also, i think some gtk operations trigger a main event loop (not wxwidgets, but gtk's native), and this might mess up event handling (yes, gtk is ugly). Mind posting the backtrace, please?