That looks like a nice project ! Another trick I use personally is to run the faulting program from inside Emacs's compile-mode (using "build && run" instead of just "build" as a compilatoin command), and piggy-back on its parsing of OCaml error locations to ask Emacs to drive me around the relevant files.
I'm sure there are scenarios where your simultaneous view of all fragments at once can be very helpful, and I'm also interested in the uses of the new backtrace/callstack inspection API.
> (we can't use exceptions at all inside a backtrace handler, for example)
I'm a bit surprised by this. Part of the point of reifying traces into datatypes (raw_backtrace, backtrace_slot) was to make them persistent. set_uncaught_exception_handler is passed a raw trace that should not be mutated by raising new exceptions. What breaks if you use exceptions inside a backtrace handler?