es2k transfers get all the data the fastest sources can deliver, then whittle down to the slowest.
These can be 0.1kB/s, presumably below that times out (<10kB fragments, kiloseconds to get that last byte?), and these can take >1hour to complete.
I would venture a 'garbage collection' at ~95% completion, disconnecting these laggards (unless the sole source from start).
This could allow more robust sources to resume, though it may necessitate a client re-search.
Just a suggestion for possibly more timely completion.