Not sure how helpful any of this will be, the examples uses given have all been pretty simple and nothing that really warrants splitting anything out into a re-useable class (except perhaps the panel one, which I don’t understand so can’t really comment on).
Whatever functionality you want from a timer can possibly be achieved just using Delays, and if you need something more timer like, there are actual Timers too.
Making network calls in widgets seems like an architecturally unsound idea (coupling networking functionality to the UI), but that is of course highly dependant on the use case. In general I would want my networking code elsewhere, and just call it from the widget event, so that it could be used from other places (in response to some configured ‘hotkey’ maybe). Perhaps there are other cases where what you would have put in one of these behaviours might more sensibly live elsewhere, and be called from the widget.
As to your own component like system for widgets (using variables), you could build something to support at least some of the things you want, but I would first question the need-for / desirability-of it.
I’m not entirely sure what you mean by lifecycle events, a variable will be destroyed with it’s owner automatically.
If you want to pass events between the widget and it’s ‘components’ you could look into event dispatchers, or for something more ‘automatic’ (if you are just talking about forwarding events to the components) then you could make an interface for the components to implement, BPI_WidgetAddon
maybe, and your own UserWidget derived base class, say WBP_UserWidgetWithAddons
that manages a list of addons (add, remove functions) and calls the appropriate functions on them when events occur (this requires some one off work up front to set things up, and also a small effort on use for the components to be initially added, so perhaps not really so automatic, but if you have a consistent set of events you want to broadcast to components would be less messy than event dispatchers).
While I used Unity briefly many years ago, I do not remember much of it and am not sure just how different things are between these two worlds, but it might be advisable to be searching for / asking about solutions to specific problems to see how other people are solving / would solve them, rather than looking for exact analogs to things you were doing in that other world.