Fix worker queue reporting on success
This PR changes the internal worker methods of worker.fail and worker.succeed to use (and wait for) a callback internally. This prevents the followup methods, specifically worker.poll to fire before they complete.
This was causing a problem where worker.poll could potentially change the value worker.queue before the success (or failure) event fires, which reads from worker.queue