FreeRTOS isn't a desktop class operating system (which QNX was fine at), it's a kernel for microcontroller class devices. QNX was a real desktop, not just a kernel. RT-Linux is an external patchset that still only gives you Linux, with some extra guarantees, but does not fundamentally change any other design decisions. QNX is real time from the ground up (for example, even disk I/O was bound by these policies, which I don't think RT Linux guarantees). QNX had a message passing microkernel architecture, that transparently extended to multi-node computing -- you could reboot/restart device drivers, message passing was transparent across single/multi-node programs. File access was transparently multi node, too. This means you could do things like run QNX as your desktop and cross compile your application on that desktop (for ARM, MIPS, whatever) and "run" it and it would magically run on some remote embedded control system in your office, provided they were networked together. All of this would be bound by real-time policies (so your browser audio would not, for example, stutter because you were compiling something and I/O scheduling anomalies caused a latency spike to hit the audio buffer.)
This was true all the way up to the window manager -- you could network two completely separate systems and even mirror/split windows between them, AFAIK. It was also a POSIX compliant system. In a sense it seems like a blend of what was later Plan 9 and something like Minix.
Everyone here posts about K8S all the time, but QNX was the original microservice-based distributed operating system, IMO. :)
Honestly, I really wish a capability-based QNX successor would hit the scene. seL4 would be an excellent basis for this. Fuschia seems like the best contender right now (but doesn't use seL4), but it's unclear where it will go and I'm wary of such a project being tied to Google in the long run (for fear of similar problems that have plagued Android as a platform.)