Make sure we actually exit the "run queue" process gracefully
Add helped functions to "look for more work" and "clean up expired children" so we can more easily inject both of these maintenance methods into arbitrary locations
Replace the inline code for children cleanup and looking for more work with the shorthand helpers
Support inter-task dependency, but building a unique "task signature" from the task name + its object id. This means it will not be supported to have a duplicate task_name+task_obj in the queue at the same time