In my opinion:
- An actor that manages the events could be sufficient.
- The events could be either actors or UObjects (if purely logic-based) that are spawned when the timer runs out.
- The timer could simply be a float that is decremented on tick.
In my opinion: