I guess the biggest problem of the whole endeavor is the lack of reliability. There are two "foreign" components, namely the bitcoin client and the BitTorrent client, both with their own reliability problems, and limited time of the one person running the project. So it is no surprise that the entire system is not perfectly reliable.
Perhaps some good ideas about this are needed. How about a little bit of monitoring and automatically restarting components that fail? Ideally all open tasks should survive such a partial reboot and pick up where they were interrupted.
The second best task survival idea may be to have the tasks and the recently paid bitcoins on the book (in the database) and restart tasks from the beginning that were interrupted by some partial failure. Or perhaps pay back the already paid bitcoins and ask the user to start again from scratch. Payback may just mean to set the task to unfulfilled and ready to be restarted in the bookkeeping. Or it might mean to actually send the bitcoins back.
Of course it would be much better if each and every piece of software involved were perfectly reliable, but I have my doubts. So the intermediate aim may just be to provide a reasonably good user experience in the face of occasional failures without the need for round-the-clock monitoring by the operator.
My other worry would be the seeding or the lack of it.