It's typical for event-loop-based servers to try to do a blocking
receive in a while loop. Queue.get() is blocking in a synchronous
way and it does not yield control back to the asyncio executor.
Let's explicitly yield control until the queue is no longer empty.