Perhaps events are the wrong tool here? It seems like normal event behavior for the calling code to create something and then allow the event to modify it (at least that is how symfony forms work). Perhaps it would be better to have a separate class injected that knows how to create the menu item from the node, including the creation of children?

Otherwise perhaps there should be a default event listener that adds the children but if that is the case it feels like it may be more clear to allow a separate service to create the item from the node rather than to have multiple events. I guess that is not as extensible as allowing users to register events.