HUD , Menu, and UMG Widgets - where should they live?

If it is an overall Menu, with different things i would use the GameInstance and a State System. Take a look at the Multiplayer Shootout. It has a good system for that.

You can also show your ingame HUD with that with a state like “Is playing”. With placing them inside the Instance class, you are sure that you don’t have multiple widgets up.
Make sure to save a widget inside a ref variable and always check if the variable is null. So you really only spawn one widget at a time.