stress: optimize and add sync/async options

* use one generator per worker
* run async workers on a threadpool, don't block