Should this class and `ExecutorServiceScheduler` be combined? The reason is mentioned in my comment on `ExecutorServiceScheduler` because of the `schedule` overloads that take time.

A `Scheduler` interface supports both non-delayed and delayed so it seems that an implementation should support both. This class supports both nicely but the other will pick up a thread and then block it with Thread.sleep from `SleepingAction`.