works for me in 1.20.1
Affects 22w42a
The behavior seems to have been changed (though not fixed) in one of the last couple snapshots. Instead of y=30, the eye of ender's final resting place will now be y=0. This still frequently ends up being outside of the stronghold though. Example is -1680 1984 on seed 12345 on 22w14a, where the stronghold generates close to the surface and the eye leads to a location well below the stronghold.
You mention you created the world in 1.16. Is it possible you created it in one of the snapshots for 1.16? If so then the cause of your problem is possibly a result of a bugged 1.16 snapshot that broke end gateway generation for any world opened in it; see MC-184482 for a way to fix.
Can confirm it affects 1.17
I added a couple videos that demonstrate that endermen do in fact tp away in 1.16 rc1 but NOT in 1.15.2
[media][media]
Affects 1.20.1.
Seems related to MC-251027. Helmets use to block 25% of anvil damage, but now they don't. To me that seems like an accidental change, since the line of code to reduce damage by 25% is still there, it just gets calculated after the damage is applied to the player.
To reproduce:
Make a datapack with the following advancement JSON. This should give an advancement when 8 or more damage is taken from anvil.
Make a new world with datapack, then, in survival:
Without a helmet:
/setblock ~ ~6 ~ minecraft:anvil
This should deal 10 damage (5 hearts), triggering the advancement
With a leather helmet:
/advancement revoke @a everything
/setblock ~ ~6 ~ minecraft:anvil
Deals about 9 damage (4.5 hearts), but does NOT trigger the advancement even though the threshold of 8 was exceeded.
/setblock ~ ~7 ~ minecraft:anvil
Deals about 11 damage (5.5 hearts), and WILL trigger the advancement.