Always disconnect when finishing a task

After a task is finished the worker always diconnects
from the host.

This has the effect to correctly catch CTRL+C under windows,
that currently simply quits worker.py without rising any
exception and so leaving a stale machine on host.

But in general terms it is also IMHO a better way to handle
normal task processing where we each job transaction become
self contained and protocol is more consistent:

start job -> run games -> end job

As a side note, eventually a rename of API from failed_task to
end_task or something similar would be more consostent but
becuase is a not back compatible change and breaks the API
shall be scheduled for a future 1.0