repeating timers would randomly start firing every 100ms indefinitely

When a repeating timer is unfortunate enough to hit the inDB case once, the timer duplicates into one that fires every 100ms. So I think repeat should always be false for the "retry in 100ms" case.