AndroidTaskScheduler doesn't correctly handle cancellation of periodic tasks
AndroidTaskScheduler#scheduleWithFixedRate() returns a Future that can be used to cancel the task. But if the Future is cancelled after the first execution of the task, subsequent executions aren't cancelled.