I understand what what you are saying. And alarm is nice, in that way. In fact, that's what I started with. And I found out that using alarm took longer to process and more CPU usage to accomplish the same task. My whole purpose for doing this was to reduce the amound of CPU usage and processing time. The code as it is now already has enough forking and such to clog up the CPU.
Just because that's the way it's been done before doesn't mean that the way we should keep doing it.