Why not write the code in C# (for example) and extract it to $SYSTEM_PROGRAMMING_LANGUAGE? It wouldn't be much different than what Xamarin are doing now for creating iOS and Android apps with C#.
Nimrod [2] also generates C, but as I understand it garbage collection is unavoidable.
What are you referring to here?
I know that historically it's been easier to write a code generator than a compiler backend, but with LLVM you get the backend just as cheaply as the code gen.
This way it would be Rust -> LLVM IR -> C -> GCC for MSP430.
The problem is, you do need them. There's no 1:1 C# -> C extraction. You have to extract at least some part of the CLR along with.