Minor refactoring of the Worker internals

* Moved @child reset from #work into #process_job
* Moved work loop into its own method