Help me please, using your method is perfectly OK for static UI. I use that myself for all my menus, but the important distinction here is that even the nodes are "in a 3D scene," you're actually displaying a 2D scene over your 3D one. It's still a 2D scene and it acts like one.
For "in-world" 3D text elements (such as name tags), you would want the text to act like a 3D element by being anchored to a certain point in 3D space. You can estimate this point through the use of camera raycasting with Spatial node, essentially what Callinou was suggesting with the "3D Waypoints" tutorial.
However, that isn't the perfect solution either, as the text element will not resize at all, no matter how far it is from the camera (without scripting).
For this reason, the ultimate in-world solution text is to use a 3D Sprite with a Viewport texture as Snail0259 was trying to suggest but with only half of the essential details and no instructions. The 3D sprite is an actual 3D element and its display is very intuitive for the game designer.
I hope it's somewhat informative!