This is interesting.

I found out that in Osiris 'event' are queued, never immediately executed but it looks like 'events' in char (and item) scripts work differently, more like function calls. (I have a hard time to believe that they work like interrupts in computer systems.)
If it's like function calls, it could explain why a char event cannot remove the status, because it inherits it's caller's environment or is executed within it.
And the RemoveStatus() event (... or function) might destroy this environment to a point where the original handler crashes and pulls the whole engine into the abyss.

A timer *MUST* be detached because otherwise it could block the whole system. A char event handler can be directly called like a simple function.

Only speculation, as always ... ;-)