Then you enter the realm about hardened / realtime systems, where guarantees about eg. execution time are required. Those usually require a different aproach to kernel development anyway -- I do know there is something like RT Linux, but I have no idea how big it is.
Although there are versions of Linux that are hard-realtime, the approach they take is to have a proper RTOS "underneath" Linux and effectively run Linux as a non realtime process.
Linux as a whole is far too large and dynamic for deterministic response.
Linux does get used a lot for soft realtime applications tho, especially in the military world.
Not necessarily. Most systems within the medical context does not have any realtime requirements, after all. A watchdog restart may be only a nuisance.
It would be nice of embedded systems engineers thought about things such as memory overcommit, but in real life they are as most of us: Stuck with old code bases that someone built right before leaving.
You probably wouldn't, and shouldn't, use Linux for RTOS duties. This is why we see Linux overwhelmingly on mobile phones, servers, etc and not powering your pacemaker, spacecraft, or nuclear plant. NASA uses VxWorks for a reason.