We did quite a lot of benchmarks about various programs (like Python interpreter written in RPython compiled to C#) and the performance was pretty bad. There were various issues, some avoidable some unavoidable, like Exceptions being very very slow (and being essentially for free on Java). I don't think it's possible to summarize it without writing a small novel and I don't care enough, but the JIT is as far as I know a direct IL-to-ASM compiler with very little optimizations or not at all. This puts a serious ceiling on what can be fast and what cannot be fast. In particular the escape analysis is either non-existant or very weak.
The AOT part is exactly C# -> IL and then it's later compiled to assembler.
The AOT part is exactly C# -> IL and then it's later compiled to assembler.