This sounds like a great idea!
As an aside, note that these things are not impossible; just tricky. You just need to register your own debugger, then in that debugger function re-throw the error after recording the backtrace. You also need to increment num-nonmacro-input-events from the debugger.