I have one seed on a torrent and that seed is slow and intermittent. So far you have started and abandoned 10 pieces from this one seed. You are currently downloading from the 11th piece form the same seed.
When they drop, instead of resuming the abandoned piece, you start a new one and, before that drops, you get some bytes, then the seed drops out and there is another abandoned piece in the queue.
How about a beneficial change in the code. Remember where the piece is coming from. Seems simple enough, you are already displaying the source of the piece. Then, if the piece is interrupted and the seed comes back on, continue with that piece rather than starting another one.
One of the pieces from this seed is 97% done but is red and has not been retried to finish it. So I am making exactly no progress on this torrent although getting slow, inconsistent data, because of the abandoned pieces.
I cannot imagine why you keep the partial piece if you won't restart it. Either use it or lose it.
Summary: Please consider continuing interrupted pieces instead of starting a new piece from the same seed.
Mike