I think some of the calls in `_periodic_task` also need to return deferreds?