Tweak the way in which client output queues work, they are now all global data structures. Abstracted from the client thread themseleves, they should sustain client thread restarts. This should prevent a race condition I could imagine where the client thread is mid-restart and the user attempts to send a chat msg or otherwise add to the client output queue