I prepared Minecraft 1.17 version: https://github.com/adiantek/mc-spx
It's a native (arm64) version (without any emulation, etc.). Without Optifine I had from 20 to 40 FPS.
And no, it's not possible to run 1.16 with arm64 until the compatibility pack update (with support older OpenGL versions) or rewrite 1.16 to OpenGL core.
I haven't tried your instructions yet, but thank you so much for posting this! I've been trying to figure out how to get it working with the native Java 16, but hadn't figured out what I am doing wrong. Though I did think it had something to do with lwjgl since 1.17 now uses Java 16 (so it should work), but the log complained about lwjgl, so I was starting to look at what to switch to 3.3.0 arm64, but I'm pretty unfamiliar with this part.
Edit:
Ok I have now tried them. It took me a bit to understand I needed to select this version when creating a new install. Silly me; it makes perfect sense now. And it works!! Much better than using emulated Java, naturally. This will be very helpful to use as reference for future versions too.
I'll have to do some more testing, as the first world I tried I'm not getting the FPS you are, though I did join a hosted server with a lot of buildings around where I left off. I have switched my device to the Insiders Dev channel, so maybe that's part of it. But it's definitely playable now though, which is simply awesome. This is the best news in a long time, and resolves what has been probably my only real disappointment with Windows on ARM.
I didn't understand why it worked last week as I thought Minecraft used OpenGL 4.5 so when installing the OpenGL Compatibly Pack allowed it to run I was confused how that could be. But your explanation of "the game now runs using OpenGL 3.2 core profile" with 1.17 clarifies it.