Ich würde mir das so vorstellen, dass man für jedes Event eine ignore-Zeit einstellen kann. Dann könnte man sich (vielleicht) zentral innerhalb der FireEvent-Methode sich diese Zeit für das Event holen und wenn es noch nicht erlaubt ist, einfach nichts tun.
Ich weiß, ist immer leicht gesagt wenn man den Code nicht kenn (habe noch nicht rein geschaut).
Das würde natürlich bedeuten, dass man sich für jedes gefeuerte Event einen Zeitstempel merken müsste, um später entscheiden zu können ob es schon wieder erlaubt ist.