This is cool, good to see you wanting to learn and experiment with stuff. I would recommend you study on the different aspects of current and past OSes. Especially simpler older OSes can give you a lot of insight into what an OS is, what components it has and how those tie together. What you currently have I would describe more as a cool little UEFI demo program and less of an OS. But it's a great start to build out from.
I would recommend trying to decouple software from hardware. Currently your code is heavily tied to hardware, which is fine in a test environment, but can easily break if the environment is different. Another aspect I would recommend you do a deep dive into is task schedulars. Especially looking at early types like the one from Windows 3.1 compared to the one from Windows 95. These are often used as case studies in schools, because they are easy to understand and offer similar but different approaches.
Personally I can also recommend trying to develop your OS for a simpler chip. That puts constraints on the project, which both limits the scope and also gives you challenges because of those limits. But that might be my personal bias, as I once developed a full fledged OS for the Intel 8051 as part of my university studies. This was back in the olden days tho, these days I would probably use something like an ESP8266 or ESP32.
Keep up the good work, keep being curious and keep learning!