refactor MultiWorker main loop.
use callback and Queue to get events faster than just sleeping and polling.
make tests faster.