Makes the background `CronScheduler` thread resilient to errors which happen during its `tick` function. Previously these errors would bubble to the top of the thread, causing it to exit. As the master process doesn't monitor the cron thread this would result in no cron tasks being enqueued until the master was restarted.