きちんとコントロールしたければ、生成したActorやComponentは全て変数として確保しておく必要があります
今回の場合、片手で掴んだ時点でまずWidgetActorがSpawnされ、変数に格納されます(これを仮にWidgetAと呼びます)
その後片手で掴んだままもう片方の手で掴むと、更にWidgetActorがSpawnされ、変数に格納されます(これを仮にWidgetBと呼びます)
その際、もとから変数に入っていたWidgetAへの参照は上書きされ、変数にはWidgetBへの参照のみが残ります
こうしてWidgetAは完全にフリーになります
その後、手を放したときに変数に格納されているWidgetをDestroyしますが、変数に格納されているWidgetはWidgetBのみ、WidgetAは誰も参照を持っていないため消すことができなくなります
これが起きていることの全てです
ここで取るべきは以下のいずれかになります
- IsValid等を用いて、Widgetが1つしか生成されないようにする
- 配列等を用いて、生成したWidgetの参照を全て掴んでおく
提示されている仕様であれば、IsValidを用いて1つのみに限定する方が良いかと思います