This could be a difficult one to track down you have a good amount of different functions setup. It would be good to see if we can identify if the reboot happen in a particular part of your code running. Could a few of the ONCHANGE calls all be getting called at the same time? Do you have a way to cause the reboots to happen?
Your backup only showed one reboot, but it was a minute after receiving an mqtt message. It does look like their was someone remoted into the device. Adding a remote connection interacting with the webpage could be what is putting it over the RAM limit.
It might help us identify the issue by reducing the amount of event logs from your script while also setting some up to let us know what part of the code your device is in. This should at least help us see if scripting is causing the memory issue. Removing the @log in MQTTReceiveMsg() might be a good start.
I am checking with development to see if there are any know bugs that could be causing this.
Deryck