When I have an executable that is paused in gdb, this is the command I use to get all stack traces of all threads at once:
thread apply all bt
I'm not sure if that will work on a core file, but I am optimistic that it would.
As for stepping into the exec()....
Are you literally using the "step" command? "s" or "step"? I would think you could just tell the program to "run" (no stepping). Then pause/break the debugger when the white screen occurs. But that might be what you tried and I am misunderstanding.
The helpfulness of the stack traces is going to depend on whether your Qt libraries contain symbols.
Anyhow, sorry to say it, but I'm about run out of ideas. It does seem like a "clue" that your application still works in the desktop edition and is only misbehaving in the QNX edition. Are there any "knobs you can turn" in QNX? Give the program more memory or more cores/threads? Loosen the program's timing goals/constraints? (Again, I have no direct experience with QNX).
Maybe there are QNX system tools that would be instructive? Ways to ask QNX to tell you information about the running app? Maybe QNX would report that the app has been frozen by the kernel for some reason?