Just curious, did you ever come up with a solution here, or that beer still available :-).
I am not sure the timer class will help you here as for me I think this is linked more to a logic table.
I would think that you should create a separate dummy service entry here which you could use to create a trigger. So it could be something like this.
Firstly you set up a dummy service ID (I refer to this in example as EML_Service).
So when you get your first Alarm event. Create some listener logic to pick this up.
If Alarm Event and no EML_Service event data found (or if one is found but really well over some max time limit), then post an EML_Service event to your data stream. Then here you create some EML_Service trigger event logic which will trigger when this event is received and it is this event that will send the email not the alarm event.
Then when you get your next alarm event....
it is here that the "Else" part of the listener logic kicks in, namely:
Else If Alarm Event and EML_Service event and previous EML_Service > 10 minutes and < max time interval then post another EML_Service event to your data stream. Your EML_Service trigger logic will then trigger again.