I am not sure, but I would assume that you cannot have two asynchronous tasks running on the same thread. Async tasks execute in the order they appear in the code. I would search how to open a new thread for the separate tasks, or find a method to periodically run watch_for_new_taks() so fetch_tasks() has a chance to operate.