When we re-set a timer, new timer goes trough following life-cycle:
1) Find previously set timer with the same id
2) Cancel any previously set timer with the same id
3) Set a new timer
We can skip 2) and 3), if the new timer is the same as previously set timer. There should be a great performance impact on GC timers, especially with RocksDB backend, where 2) and 3) are expensive operations.