Why didn't you use the usual LightChildren approach here, with xml_content? I'm going to merge as is as there aren't that many additional beneffits for this use case, but it would have made the Overlay object  closer to an XBlock children