function scheduleTimeout(intendedAt) {
    if(!done) {
      try {
        fn(intendedAt);
      } catch(e) {
        log.info('Exception running scheduled job ' + ((e && e.stack) ? e.stack : e));
      }

      t = SyncedCron._laterSetTimeout(scheduleTimeout, sched);
    }
  }
Executes the specified function and then sets the timeout for the next
interval.