Heartbeat timer is started when the worker is being run

This fix allows for delayed run of worker. Disown timer should be started with a loop, otherwise there is a possibility that loop will execute disown timer callback right on the loop start (if 'run' was called more than disown_timeout seconds later than 'start' method of disown_timer).