blockjob: use deferred_to_main_loop to indicate the coroutine has ended