Async queue no longer uses a dedicated worker thread.
Instead, a task is started as soon as there are items in the queue and stopped once it's empty.