Edit: this is a local DNS issue. I have local domain names setup for all my devices so I can go to "http://hubitat" and view my hub. Something (not sure yet) happened and the "hubitat" DNS started resolving to my external IP which routed the requests to the wrong host.
I've spent the evening doing a bunch of RM4.0 customization. I started noticing the alert icon telling me there was no Hub connection but things were still working, just slow. After finishing the rule work I used the UI to reboot the hub. Now the UI doesn't load completely and I get a bunch of net::ERR_INSUFFICIENT_RESOURCES error responses from the hub when the browser tries to load all of the ui2 js/css resources: The hub appears to still be running rules/apps/devices as my "Ok Google" -> IFTTT -> Hubitat voice controls still work as do various automation rules. This is running 188.8.131.52 on a C5 hub