It is nothing like ASP.NET web forms... the server is not keeping any state here between requests, it simply renders the page and serialises the state, event handlers and such in a way that the client can pick them up and resume execution.
When the client either lazy loads (on interaction) or prefetches these serialised event handlers, there is no server work at all, it's simply static js files.
Right, but the reason it was kept in a hidden field was that it would then go to the server on form submission and the server would persist it across requests, if I recall correctly – haven't done ASP.NET in more than a decade.
Either way, that was a form of hydration itself I suppose, the server would send this state value to the client and the client would hydrate its view to match the state.
When the client either lazy loads (on interaction) or prefetches these serialised event handlers, there is no server work at all, it's simply static js files.