This class looks like it will function well for it's use case - but I think it should only ever be used for synchronous execution (Immediate or CurrentThread schedulers).

Async schedulers should use a ScheduledExecutor, Timer or other similar mechanism I think.