This came up on the Discord, so I figured I would share a solution here for the archive.
My solution was to have a general-purpose bit configured to go low on unscheduled stop. I then monitor this bit in a thread and if it is low, I reset it to high and then run the halt command to force the program to stop instead of pause.
Here is a sample program:
Here is the bit configuration:

