I think it boils down to this - Is there a mechanism that enforces that a child class should be deleted before it’s SuperStruct, assuming they’ve both been marked for GC? It looks like this might do it in UStruct::AddReferencedObjects:
Collector.AddReferencedObject( This->SuperStruct.GetAccessTrackedObjectPtr(), This );