NewObject, USphereComponent & Overlap Events - Where does it go wrong?

here is my few cents (might be wrong though, use it with lots of salt)

createdefaultsubobject is only for constructor, it doesnt need registercomponent as it is automatically being registered.

Anywhere else would be NewObject. It requires to be registered.

Usually crashes are due to calling invalid objects that is not created. Try calling RuntimeMesh->IsValidLowLevel() to check if the object exists before doing anything to it.