Hmm... schwer das so abstrakt abzuhandeln.
Ich hab bei meinem Spiel ein ähnliches Problem. Allerdings geht es dort nicht um sichtbare Aktionen sondern Einstellungen im Hintergrund. Daher weiß ich nicht, ob meine Idee bei deinem KS funktioniert.
Statt ein Event direkt aufzurufen, habe ich einen Switch eingegebaut, dessen Aktivierung die Startbedingung für einen parallel process ist. Allerdings nicht in Form einer Fork sondern als Wartebedingung für das Event. Sozusagen ein Ampelsystem im Straßenverkehr. Bei roter Ampel (Switch on) wird gewartet bis er of ist.
Der Unterschied zu deinem Switch ist, dass jedes Event auf jeden Fall drankommt, da es für jedes Event einen eigenen Switch gibt. Dieser geht erst aus, wenn genau dieses Event ausgeführt wurde.
Ich weiß nicht, inwiefern du das schon benutzt hast. So wäre zumindest das Überspringen von Animationen verhindert. Nur wird es vielleicht zu Verschiebungen kommen.