I've checked in some changes to implement a debug_on_interrupt
variable. It is not enabled by default, so interrupts work as
expected unless you set the new built-in variable debug_on_interrupt
to a nonzero value. If you do that, then C-c should put you in the
debugger at the next possible breakpoint. If that takes too long,
another C-c should result in the normal interrupt.
If you're interested in seeing the diffs, send me mail.