I'm not a translator, but a writer. However, I would never wait until I completed a whole book before submitting anything for review.
I would suggest that next time, you break up your work into smaller pieces and get payment for each piece of work. If you see early on that the client is never going to be completely satisfied, you can end the job.
Echoing what Marcia said...
(although I'm a database designer/programmer)...
I usually don't do more than a few hours of work before getting paid on fixed rate contracts.
(That may not have been clear from my previous posts on this thread.)
I don't mind takoing zero up-front pay because I don't go too far into a project before submitting a milestone and getting paid.
The longer I work with a client and the more I trust him, the more work I'll be willing to do before getting paid.
First time clients? I don't do more than 2 or 3 hours of work before they need to pay me.
Considering that what OP said is true, all I can say is that he is getting a good deal here. Reason is that mostly similar clients won't pay you a single dollar and even file a complaint against you on odesk. People have already suggested you some helpful measures and you will find plenty of them here but the truth is that your payments(and even client's money) are never protected on odesk.
As odesk does not take drastic measures against scamming clients(like it does against contractors), such people have become so good at their game and have found out so many loopholes that you can only do so much to minimize the risk and simply hope that you will one day land an honest client that will offer you continuous work. I was stupid enough to not continue with some of my awesome clients but I strongly suggest that good clients are very rare to find so stick with them and send them cards for holidays may be.