If anything, the biggest problem I had was knowing that the client had an alloted pool of hours, and I had to make my solution fit within that budget. Many times, I gave them unbilled hours just to ship something I was happy with. That's a separate problem worthy of its own discussion at some other time.
But even if you do work extra hours in order to make more money, that's better than doing the same thing on salary. I see people now working 50+ hours a week, with no incentive other than, I suppose, a go-getter attitude that they hope will result in them working 50+ hours a week for more money, with a fancier title, someday.
My point is that the billing model by itself is neither the problem nor the solution: overworking yourself, or letting your employer overwork you, is something you can do under any system if you aren't careful.