async done not executed when all jobs are finished

Hi, 

There is a big bug because async done() is executed several times because included in a loop of jobs.
It's not a problem if the task is used in last. In my case it's hurt the next tasks.