Just a note that you may find useful...
Without too much difficulty, you could set up a single timer that triggers every minute or 5 minutes or whatever you want and, at that time, it deals with whatever your current timers deal with.
Example:
If you have your own unban timers rather than ban -u, as you commented on, rather than starting a timer every time, you could add the information to a hash table, INI file, or TXT file. Then, a single timer would trigger every minute or however often you prefer and would check the stored location (hash/INI/TXT) for anything that is marked within a certain time frame and unban them. You may not have the unbans happening at exactly XX seconds (unless your single timer is triggering every second), but it really doesn't have to for something like that.
Anyhow, it's just a possible way to prevent thousands of timers. Whether it ends up being faster or slower, I can't say. And you also would want to consider the memory usage with thousands of timers versus only one. It may not be what you'd like to do. I just thought I'd offer you an example of how you can change how you handle things in order to cut down on your timers.