It just cannot work with a portable oriented virtual system,
a complex implementation will require handling with lua natively,
you will need the lua state to do complex thing.
The only solution I see would be for example to make MScriptContext a dynamic library that can be accessed directly
(or let's say a Common with also bulletContext and few other major implementations)
so the lua context could be used natively.
It will give an "expert" access to the engine implementations, it will just need some security.
The specificity you want to use is anyway not portable and very lua-oriented,
and the use of this common dynamic lib can stay optional for the general use.
But this is a big structure modification, so it need to be planned carefully,
there is things to go before and validated/tested step by step.