An AsyncScheduler schedules tasks to happen in the future with the
given ScheduledExecutorService and the tasks themselves are executed on
the given ExecutionContext.
A scheduler meant for testing purposes.