Hi,
Don't worry, this is very good that you ask AND solve your questions. It makes you feel competent, and others will benefit form your experience, so all positive, and not so crazy
Setting the audio listener volume is not really like setting the volume for a particular hierarchy tho, and you found a nice workaround.
to do that "properly", you can implement a Fsm on each gameObject, and create a custom global event per "context", then you fire that event globally ("SET VOLUME FOR XXX"), and all fsm that implement that event will be able to set their audio volume. That would be the easiest and most direct way to do that.
If you don't want to have an fsm for each GameObject, you can use the action "GetNextChild", and iterate again and again deeper in the hierarchy. Have you tried that?
bye,
Jean