I would recommend putting the child contents for the hidden children as serialized text, rather than as actual html nodes. The way it's set up now, the xblock javascript code will crawl down the dom tree, and find all of the children, rather than just the first one, and will initialize them all at once, which I don't think we actually want.

The sequence module does the same thing (store them as text, and then load them on demand as html), so you can use that for reference.