See (OH 1.x and OH 2.x Rules DSL only] Why have my Rules stopped running? Why Thread::sleep is a bad idea. This is a classic symptom of long running rules or rules that get stuck because of locks.
I’ve never seen that exception before but I rarely look in journalctl.
All I can say beyond that is I typically get months of uptime on my OH instances. The only reason I need to restart it is to update it.