How to create a "Looping" Cast. C++

if a “Floor” needs a “House” to exist, and the “Floor” will exist inside the “House” then even though the Floor is probably an actor it can still be nested inside the “House” actor, and at the worst you can work with the

PostInitializeComponents()

(this is called on every Actor just after well the components are initialized, but right before begin play)
to get the nested actors, or create them in the worst case. they can still get their own callbacks and functionality, but if can prevent what is sounding like a race condition on level load. then you don’t need to deal with timers, and holding execution up.
if these need to be created at run time to create blueprint actors then you could have the “House” hold a TArray of “Floors” and then have the PostInitializeComponents() calls a BlueprintNativeEvent() that you can load your Blueprint Floors into.
with it being like a blueprintEvent you can also call it whenever you want either through blueprints or C++
Shouldn’t have any need for looping attempts to find something that might not exist.