I think Oberon would be a better candidate for this than C. You could get a tiny and extremely fast compiler for a full-featured programming language.
Oberon doesn't provide much advantage over that.
The implementation includes the hardware too.
Taken together, the system including single-tasking OS, windowing system and Oberon takes about 9000 lines of code.
https://www.research-collection.ethz.ch/bitstream/handle/20....
Also, following on from A2, Composita introduces a component architecture to allow managed memory without GC, and contextless switches (IMHO better than Rust):
http://concurrency.ch/Content/publications/Blaeser_Component...