I'm still new to circuits, so I may have got it all wrong, but...
The assignment of targets to events is inconsistent. When an event is fired, its target is set as decribed in Event. The targets of the accompanying events specified with attributes "success", "failure", "filter", "start" and "end" remain unchanged, even if they are unspecified (None).
As "start" is fired in the context of fireEvent, however, this event eventually does get the same target as the fired event, the others don't. This results in the inconsistency that "Start(Event)" is targeted, "End(Event)" is not. Of course, this can be avoided by setting the attributes for the accompanying events explicitly for every created Event, but this is tedious (if you have varying targets).
Maybe this should be fixed in fireEvent. However, as I need a solution now, I have derived a class from Event that can be used as base class for events with the behaviour that I want. It might be of interest for others.