invoking _finish when all workers are stopped instead of relying on the deferredList callback