I am trying to make the most minimal changes (aiming for none) to the base mangband code.
Thanks. In ideal world any new main-xxx would just work, but in reality some changes are often required. Pinpointing those critical places is also an important task, as we try to do away with them.
I'm pretty sure other clients exhibit similar behavior in terms of OS event queue interaction, I definitely remember some hackish work-around being used in SDL client for example (maybe it's the other way around and is the reason why sdl client is slow on OS X).
Any other solutions would require changing the mangband base code too much.
Some of the needed changes you mention already exist in trunk, afaik. Also, changing base code might not be such a bad idea for trunk, given it makes code cleaner.
Oh and find that IRC client already! :) Anticipation is killing the team :)