Hello,
How do I prevent them from going offline and staying offline?
Depends on what "offline" means in this context. Based on your description, looks like cases (2) and (3) may have simply lost their mobile connection. This can happen, especially when the device is not stationary. A way to prevent this is using Ping Reboot. It can be set up in the Services → Auto Reboot → Ping Reboot page.
But it wouldn't help to solve case (1), as it seems like different issue.
Do you think something happened to the OS that made crontab fail?
If we're talking about case (1), then probably not. Looks like it was a powering issue and nothing to do with the OS.
Is there a log or another way to detect that there is a fault & reboot?
Yes, there are ways. I would recommend setting up Events Reporting (Status → Events Log → Events Reporting) and Reporting Configuration (Status → Events Log → Reporting Configuration).
The first one can be used to inform you via Email or SMS of any failures. The second one can be set up to periodically sends router logs o FTP, Email or syslog server. The logs are deleted after a reboot, that's why you couldn't find anything useful. This might ensure that some helpful information will be preserved.
Also, you can make the router save logs in it's flash memory instead of RAM, which would preserve them even after a reboot. This can be set up in the System → Administration → Troubleshoot page. However, the flash space is very limited.
Is there a known problem with the hardware power that I need to fix?
There is no known problem. There could some issue with the specific device or devices. Unfortunately, this is a bit harder to troubleshoot. Is it the one device that lost power (LED was not lit up) or are there more like this? How often does it happen?