Реализация Microsoft Common Language Runtime имеет только одну исполнительную систему, JIT. Mono, с другой стороны, поставляется как с JIT, так и с переводчиком.
Я, однако, не до конца понимаю, что именно вы хотите сделать сами и что вы хотели бы оставить для реализации Microsoft:
Есть ли способ полностью отключить JIT и создать собственную виртуальную машину?
и
... без необходимости что-либо писать самостоятельно, или для достижения этого я должен написать весь MSIL-интерпретацию?
является своего рода противоречием.
Если вы думаете, что вы можете написать лучшую систему исполнения, чем Microsoft JIT, вам придется писать ее с нуля. Имейте в виду, однако, что как microsofts, так и monos JIT являются высоко оптимизированными компиляторами. (стрельба по языку программирования)
Возможность точно рассчитать время ЦП для процессов операционной системы в пользовательском режиме невозможна. Это задача операционной системы.
Может быть, некоторые реализации зеленых потоков являются идеей, но это определенно тема для неуправляемого кода. Если это то, что вам нужно, взгляните на API хостинга CLR.
Я бы предложил, вы пытаетесь реализовать свой язык в CIL. В конце концов, он скомпилирован в сырой x86. Если вам не нужна проверяемость, вы можете использовать указатели там, где это необходимо.