Child componentes are promoted, not deleted, when I delete my custom USceneComponent from a pawn in the editor

I have a USceneComponent I’m attaching to Actors/Pawns in the editor (currently just using the empty pawn). The USceneComponent creates a UStaticMeshComponent in the contrusctor and attaches it to the USceneComponent.

UDisplayBase::UDisplayBase()
{
	PrimaryComponentTick.bCanEverTick = true;

	// Create the static mesh subcomponent
	DisplaySurface = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("DisplaySurface"));
	DisplaySurface->SetupAttachment(this);	
}

If I then right click and delete the DisplayBase object within the editor then it Promotes the UStaticMeshComponent up to be a direct child of the DefaultSceneRoot and I am not able to delete it.

I have identical behaviour with another of my custom USceneComponent classes so I’m clearly missing a step here. Is anyone able to provide an example of how to properly handle the delete process? I can see DestroyComponent but not certain this is the answer I’m looking for. Feel more like I haven’t quite got my structure setup correctly.

Child component promoted and now unable to delete. It is deleted if I delete the Pawn.

Had put this on the back burner and then it started to bother me again.

I (think) I have resolved by overriding the “DestroyComponent” function - at least the child objects are no longer appearing in the editor anymore.

*.h

protected:
    virtual void DestroyComponent(bool bPromoteChildren) override;

*.cpp

void UMyComoponent::DestroyComponent(bool bPromoteChildren) 
{
	if (MySubComponent)
	{
		MySubComponent->DestroyComponent(bPromoteChildren);
	}

	Super::DestroyComponent(bPromoteChildren);
}