I was a bit confused by your analysis of method #4 compared to #3, #2 and #1. From what you described, it sounds like #4 (Blazor Server) is fundamentally the same as Livewire (PHP), Hotwire (Ruby) or Liveview (Elixir). The only difference I can tell is that it's the C#/.NET equivalent of all these same approaches.
They're all server-managed, HTML diffing mechanisms served over WebSockets. Did I miss something in your descriptions? Why is #4 exclusively a bad choice for public-facing apps? Wouldn't the other 3 suffer the same problem from huge resource consumption on the server-side per user connection?