Good question.  I'm mostly just trying to keep the DAGScheduler in a consistent state even when the backend doesn't support killing tasks, and I'll admit to working quickly while trying to get this significant bug fix into 1.0.0, not having fully thought this part through.  If you can't see any use for the finally block unless taskScheduler.cancelTasks is successful, then we can drop the finally.