Is there a need for this extra class? I think putting these on the queue class would be clearer and more concise:

```python
with WriteQueue() as queue:
    queue.push(WriteAction(foo))
    ...
```

vs.

```python
with QueueContext(WriteQueue())  as qcontext:
    queue = qcontext.cls
    queue.push(WriteAction(foo))
```