you will need to turn off if optimization if you are going to use triggers as you do with OR statements. basically all the if clauses that are OR'ed together will not run, so many checks for maintenance of stays will not be executed.
I would try disabling condition traversal optimizations.
If you can get this to a smaller scenario, that would help. All my unit tests are passing, so I expect you are not letting the stays execute on every run