And like, yes I can make only allow it to send that first message if there are 2 free slots in the send queue.
But how does that generalize to multiple clients?
IRL each would have a separate TCP connection to the server, but currently I model them all as a single pair of queues, one from clients to server, one from server to clients.
So if one client checks that there are 2 slots in a queue, sends first msg, then another client sends a different one, I'm still stuck.