The current implementation works (there's nothing inherently unstable about it) and changing that code will require a lot of testing, but I like your suggestion for if we ever want to support concurrent sends over a socket, so I propose a compromise.  Let's accept this for now, and create an issue tied to supporting a new communications method for us to revisit the threading implementation of our message queue.