There is a limit on the number of running eventmachine timers you can use at one time. And cancelling a timer does *not* free up one of those slots for running timers, you must wait until the time when the timer would actually fire to free up a slot. The default on most systems is 1000 timers. set_max_timers(count) allows you to increase it.
This doesn’t apply to the pure Ruby eventmachine, it has no max_timer limit.