i’d say this is standard practice,
the problem as you’ve identified is you just don’t know when BeginPlay will fire, worse it can change between PIE and Standalone breaking your project and can be hard to track down.
consider my way like a load screen, you load all the things you need in the order they require and so it will always work.