Keeping both of them connected does not help.
However, I might have narrowed down what the problem might be. It seems like whenever it gets into the unresponsive state, the hubitat hub stops broadcasting for _hap._tcp mdns. This is probably why HomeKit is unable to connect to hubitat, and why a reboot fixes it.
I'm not sure why _hap._tcp broadcasting goes down within a few hours of booting. I thought there was a general problem with mdns broadcasting going down, because most of the time I'm unable to resolve hubitat.local if _hap._tcp broadcasting is down. But after a couple days of experimenting there was one occasion when I could still resolve hubitat.local while _hap._tcp was down.
I'm following this thread to hopefully see a resolution to this problem.