A relatively new development in this space, and one that is worth watching, is Bootsharp.
It is fairly well documented, and the developer is responsive to issues on the GitHub repo. It currently provides options to use the NativeAOT-LLVM as an option, and to use binaryen for optimization.