By default make the scheduled job a singleton job
Now the asynchronous calls to schedule or remove a ScheduledJob return
ExecutorCompletionService which can be used to determine if the task
(scheduling or removing the job) is finished.

We use the pool(long, TimeUnit) methond in schedule and remove methods
in the TorqueBox::ScheduledJob module. By default we'll wait 10 seconds
for the task to finish, but it's configurable by passwing the :wait
parameter to the schedule or remove calls. Specified value must be in
miliseconds.

TorqueBox::ScheduledJob.remove('JobClass', :wait => 5_000)