We currently use a readymade OS (FreeRTOS) on our current two supported architectures. The “lot of work” in your current attempt reflects the code needed to work with FreeRTOS.
Moving away from FreeRTOS to Zephyr would bring enormous new work, because virtually none of the numerous (great) libraries we use would be available to you ‘off the shelf’. Because these libraries (including RadioLib) assume arduino as their OS abstraction. If you swap out one RTOS (FreeRTOS) for another you are also saying goodbye to the arduino ecosystem. i.e. you would be signing up to write a bunch of new libraries (possibly including BLE and wifi).
(As an aside, not all “arduino” platforms use FreeRTOS at the bottom, the Cubecell uses something different for instance)
This is part of why when I started I didn’t use a different RTOS (because FreeRTOS is kinda crufty - it is just ubiquitous). I wanted to build from the existing work of others.
Therefore, I think the correct OS abstraction is to provide a small set of adapter classes (for Thread, MessageQueue, and possibly one or two others). Those interfaces (or HAL if you prefer ;-)) will have an FreeRTOS implementation and soonish a Posix implementation (for running on linux like hardware).
RadioLib when going to Linux will most likely be done as a “ArduinoOnLinux” library. That library would need to provide an implementation of the (small) arduino Spi and GPIO APIs.
So that’s my verbose way of saying I think porting to one RTOS is not a great approach. Much better to slightly abstract that OS dependency away. But if you want to try it, more power to you, and I hope it works out great.