Waiting on the next available task should be extracted from the queue (make timed_message_loop for timed tasks?)
Waiting on the next available task should be extracted from the queue (make timed_message_loop for timed tasks?)