This behaviour seems correct to me, or at least suitable enough. A minor improvement might be to kill the query if you interrupt and cancel the lisp-side process, but that sounds like too much trouble.
I think there actually is unwinding code that tries to do this, but apparently it doesn't work. I'll make a note for myself to test that again sometime.