avoid coro.in_parallel.

Instead, push a set of requests onto a fifo and count the results as they come back using an inverted semaphore.
This keeps the worker threads busier, and we can push an entire independent set at once.