I had a bug in one spot where a url was being given to the fileexists() function instead of an absolute path.
According to the documentation this should not work. Sure enough it really doesn't, but instead of returning NO the thread seems to hang. (CF 10 , version 10,282462). Not exactly sure why, more investigation is needed here.
I've never worked on version 9 before, but according to this thread, it was actually possible to do a fileexists on a url as of 9.0.1