Make workers start/stop/restart independently of each other
At the moment worker manager is used for receptive agents only. Each worker may keep running after getting a stop signal for quite some time while it wraps up in-flight requests. We don't want that to block other workers from (re)starting.
This MR ensures there is still ordering for each worker id, but no ordering of start/stop/restart behavior across workers with different ids. Shutdown still waits for all workers, but ApplyConfiguration()
doesn't wait for any shutdown anymore. This is also a desired change because now the outer loop can keep polling the API to get new/updated receptive agents configuration and, potentially, starting/restarting/stopping some workers while workers with long running requests wrap up.