I was quickly browsing over the source code for APM 2.6. I noticed that the main loop uses just some straight up timers to check for how often update routines are called and so forth.
Are there any benefits to modifing this code to use interrupts or TimedAction to ensure that the loop doesn't get stuck? (you would also have to do some mutex logic if that's needed also).
I deal with this problem on a similar project where reading from a UART might timeout and so forth. I would think in a real time environment this is even more critical.