- remove locking from Worker Start/Stop/Dispose, these don't need to be thread-safe
- make Stop block until idle, with a timeout