I've had a similar problem - when I select the 'never download' option for a file, then sometimes it seems that the client still tries to send this 'ghost' file (which has already been allocated, but doesn't actually exist) to a peer requesting it.
This results in an error message similar to 'can't find the file being requested', and the program locks up and cannot be closed. The only way to close it is over the task manager, which means that all the resume data and even a lot of the downloaded data is lost.
Strange, but true...