Designing safety-critical systems is not a software problem, it is a _system_ problem, and the system design should be done by a system engineer who is experienced in designing safety-critical systems (safety engineering).
The changes you list are improvements to make Lua more useful for real-time control (which is the computer's ability to guarantee
it can issue commands within the time constraints imposed by the system
specifications).
I have worked on safety-critical systems (semi-conductor equipment control software). The software was written using a combination of batch files, C, C++, and Object Pascal. We could have used scripting languages, but didn't due to the fact the original software was written before the widespread use of Python and Lua.
The key system design steps that our team used to determine the overall safety of the system included doing a hazard analysis of the system, and performing a Safety Analysis. The safety analysis was structured much like a Failure Mode and Effects Analysis (FMEA).
From a safety engineering point of view, the overall system design should be safe if any of these event occur --
1. The computer itself has hardware faults and commands the system to go into an unsafe state.
2. The software running on the computer commands the system to go into an unsafe state.
3. Faulty inputs to the computer cause the software to command the system to go into an unsafe state.
4. The software on the computer goes into an internal state (i.e. infinite loop, segment fault, kernel panic, etc.) where it stops issuing commands to the controls -- i.e. a "watch dog timer".
In general, assume that your software has bugs in it, and the underlying operating system and libraries you are using have bugs in them that can cause your software to fail at any time.
For a system to be considered "safe", it needs to be designed so that it takes failures in two or more independent components to even get to an unsafe state. Thus, the computer and the software running on it cannot be relied upon as the sole means of preventing the system from getting into an unsafe state, nor should it be the sole means of placing the system into a non-hazardous state should it get into an unsafe state.
None of this has anything to do with the specific language you use.
--Jay