There are some bugs missed in task handler: - wait_for_task does not wait until virtual tasks are done, but returns the status immediately; - wait_for_task suffers from use after return; - get_status_recursively does not set the kind of task essentials. Fix the aforementioned.