Fix the calculation of the total time on worker.

This introduces another task variable to keep track of when a task has
been committed to a worker.  This time is checked when a worker is
removed to avoid adding too much time to the total time on worker (due
to the task starting time being incorrect).
Merge branch 'matz-e-master'