Split producer-side of async queue into new file
Refactored producer- and consumer-sides of the queue