If you disconnect a running thread, and you do not have proper treatment, the finished signal is not supposed to be called, so this is normal.
You could hook up the delete later or the disconnect "signal" that you establish, but you need to make sure to properly quit the thread.