We may call `stop()` without `setQuiesce`, so the `BlockingQueueConsumer.this.shutdownTimeout` may be `0`.
Of course, it looks like atomic operation from lines:
```
this.cancelled.set(true);
this.suspendClientThread.countDown();
```
But anyway...
WDYT? Does it make sense to provide `shutdownTimeout` after `BlockingQueueConsumer` construction?