Hmmm. I wonder if this is new behavior. I used to be frustrated by the fact that my Timers went away, not that they stuck around. But in short, once you lose the handle to the Timer there is nothing you can do to cancel it.
Until or if this never gets fixed your options are:
- write your Timer’s bodies so that when they do fire they check to see if the state is valid for doing whatever it is they do
- use Expire Binding Based Timers which do become cancelled