The code makes no sense. The point of UMG is to make use of the WYSIWYG editor, there’s nothing to be gained by trying to design the widget in C++ and indeed you shouldn’t be. If you want to create your UI in C++ only (why you would ever want to is beyond me), then you should use Slate. You’ll be fighting the engine trying to do this any other way.
The overhead of UMG widgets is pretty insignificant next to the benefits you get from using it properly. There is UPROPERTY meta-markup available which allows you to bind to design-time widgets/animations in C++ without any extra work (see Widget.h for an explanation). This way you can design your widgets in the UMG editor, while still doing the heavy-lifting code and implementation in C++.
All of the UI in my games has been done in UMG, and the vast majority of it is ticking itself too. Even in UI-heavy games, it’s not even close to being a bottleneck.
I don’t understand why every developer rushes to avoid Blueprint. The ONLY performance cost of Blueprint is the VM and you have to be doing something pretty ridiculous for it to become a bottleneck. Subclassing C++ base classes into assets costs nothing.