It will be safer to use a `try catch` statement no? for each callback called:

```
foreach ($this->eventCallbacks as $callback) {
    try {
        $callback->call($eventId);
    } catch() {
        LogOrSomething();
    }
```

Devs do mistake...

a timeout also for callback would be stellar, but I have no clue how this could be implemented, and it's seems an overkill in this task.