One more thing: we need test coverage for "suspend on full queue, resume when the logjam clears". qmp-test.c got the building blocks. Something like this:
send_cmd_that_blocks() eight times send_oob_cmd_that_fails() unblock_blocked_cmd() recv_cmd_id() for the 1st in-band command recv_cmd_id() for the oob command unblock_blocked_cmd() recv_cmd_id() for the 2nd in-band command ... repeat for the remaining six in-band commands ...