This allows for disconnections to be detected quickly where possible. It also makes sure other driver errors aren't thrown in the event of a disconnection.
Use a spin lock to recheck the queue size until it has room to push.