that was _exactly_ what was happening to me -- the parents' broadcast was not being heard by the children because the children were not done instantiating yet
I wrapped a promise around a dataset to make it work, but the setTimeout was written in that promise (I couldn't make the promise work without the setTimeout because it didn't call out to anything, it was just a mass of calculations.)
In my case the setTimeout in the promise was enough to let the children finish their instantiation, I rationalized it by saying that javascript is single threaded and setTimeout (for now) is the only way to yield execution.
I wanted to wrap the promise around the children's instantiation but could not find a list of all the .$functions that are called (or events emitted) by angular in the course of instantiation -- I was hoping to find one so that it didn't seem so coincidental that the children were done instantiating.
Maybe by next time I'll know more and can build something that feels more concrete