I suppose I could make a FIFO, push callbacks onto the queue, and then execute the whole queue on each timer's alarm, stopping at the first element whose time is not due yet...