I had an issue where one keyboard (worked with another one) worked in bootloader, but not when entering the encryption password after that. I believe I solved that by moving keyboard earlier in the module list in mkinitcpio.conf. Maybe something similar would solve your issue?
My impression of it is that you can achieve good performance in UE5, but you won’t be using the newer tools for that in most games. Many of the newer tools, like Nanite, comes with a large up front cost, but scales well after that. So you can make a beautiful game that runs stable 30 fps with some effort, but reaching 60 or 120 is trickier when using the newer systems.
Since there are so many different systems in Unreal 5 it’s also a beast to understand. Understanding a system is in many cases a key to performance optimization. Performance is also something that spans most disciplines, adding more people that need to understand it.
UE5 is targeting capabilities of newer hardware, compared to UE4, so it tends to push the limits more.
UE4 has had a lot more time being refined than UE5, so it is understandable that it performs better.
Making a game look nice and run well on newest hardware and do the same for lower end hardware takes a lot of effort. You may need to fall back to older systems with different visuals and spending time on getting it to look similar enough. Sometimes two systems may even not be feasible to switch between, so then in most cases the newer system with better quality takes precedence.
I could go on about this at length but I mostly want to communicate that people underestimate how hard it really is to make a game that is a good investment, fun, beautiful and performant. There is always a balance to be struck.