,
I guess I’m not understanding what you are trying to do here then. Once all the references to the widget have been removed it should be cleared for garbage collection.
If you still need to do some clean up around the time of destruction, I’d recommend doing it in BeginDestroy (and still leaving the second widget as a UPROPERTY). That way, you’re guaranteed that Widget 2 will not be destructed before Widget 1 (as Widget 1 still has a valid reference). However, this is still unsafe because you are not aware what state the game itself is in.
Are you manually destroying the first widget somewhere?