It would be great if we could have "signed" or "named" timers, so we can distinguish timer events from each other. So we could have:
llSetSignedTimerEvent(float timeout,integer signature)
signed_timer(integer signature)
{
}
or:
key llSetKeyedTimerEvent(float timeout)
llUpdateKeyedTimerEvent(key id, float timeout)
keyed_timer(key timer_key)
{
}
Whatever is easier to implement. Personally I would like the arbitrary signed timer best, with a limit of 8 or 16 simultaneous timers if needed.