Making a smaller file that exhibits the problem doesn't seem possible (not sure why cutting out things causes it to not abort...).
I did find something though -- I was converting an int to hex using sprintf. Evidently that was too slow/part of the problem - I replaced it with a homebrew inttohex, and haven't had /that/ problem... but I'm at a loss as to why that would be unless the "nesting got too bad" and smashed the stack somewhere.
Is there an example for uvision using the VIC and FIQs?