JBIDE-18247 - better organized with better cancelation logic

This is a cleaned up version of the patch with better cancelation logic. Also, see inline notes
I'd like to note that your use of transport.getCachedFileForURL(etc) actually does not include a timeout. Your use of the integer 1  was simply representative of URLTransportUtility.CACHE_FOREVER, so I made the change to make it more clear. 

It's worth noting that at no time were you actually using a method signature that made use of the timeout. All our debugging into ECF was wasted because in fact the signature you're using is not a timeout and does not provide a timeout. However since you proved that DNS still took 30 seconds, I chose not to make larger changes here and to instead just fix the cancelation