code: @Override
      public synchronized ManagedScheduledFutureTask<?> schedule(Runnable command, long delay, TimeUnit unit) {
          ScheduledTask<?> task = getNewScheduledTaskFor(command, false);
          ScheduledFuture<?> future =
                  ((ScheduledExecutorService) executor).schedule(task.callable, delay, unit);
          task.submittedScheduledTask(future);
          return task;
      }
docs: Creates and executes a one-shot action that becomes enabled
  after the given delay.
  
  @param command the task to execute
  @param delay   the time from now to delay execution
  @param unit    the time unit of the delay parameter
  @return a ScheduledFuture representing pending completion of
  the task and whose {@code get()} method will return
  {@code null} upon completion
  @throws java.util.concurrent.RejectedExecutionException if the task cannot be
  scheduled for execution
  @throws NullPointerException                            if command is null