I partially agree. I think purging the timer and logging would certainly be useful. However I think it's also a good idea to run into the assert:
*  On UT and test systems it is a clear signal that something has gone wrong. It's a lot easier to spot a crashed process than it is to spot a few lines in a log file. 
*  This branch indicates the timer store is in a bad state. It's probably better to restart that try and keep going in an unknown state. 

So I think I'm going to add the logging you describe and move the `purge_timer_from_wheels` function above the assert.