I have a couple suggestions to help resolve the issue of resuming incomplete files:
1. Why not put an incomplete.dat file along with the download.dat file in the incomplete folder. The incomplete.dat file would contain similar information to the download.dat, but for ALL the files in the incomplete folder, whether they're active downloads or not (information would be duplicated while a download was active but would remain in incomplete.dat until the file was deleted). If you accidentally kill a download or your system freezes, corrupting the download.dat so that the transfer doesn't resume automatically, you could go to the library window and resume the download manually using the information in the incomplete.dat file.
2. Sometimes when a download starts over from 0% instead of resuming, I've tried comparing occurences of the file in BBEdit (I've had up to 4 versions of the same thing in the Incomplete folder) and many times I've found the first few bytes of the files to be identical, even when they're from different IP addresess. Perhaps Limewire could generate a code based on the beginning of all files in the shared folder. This code could be saved in the download.dat file when you start a download and be used to help search for identical copies of the file if the original server were no longer available.
Please note: I'm not an expert on the architecture of Limewire or the structure of Gnutella so please feel free to shoot me down in flames if my suggestions ar not practical!