Depends on what I am doing. If I am writing a report, it is time to take a break when I start making obvious spelling and grammatical errors, or have to look up definitions for words that I already know the meaning of. If I am turning wrenches, I need to take a break or call it quits for the day when I start missing basic stuff, or forget to torque something to spec. If I run into a problem and can't solve it within four hours, I need to take a beer and anime break. At that point I'll probably be on the verge of throwing a wrench through the wall anyway. At work I take a lunch break. We get an hour to eat lunch (paid), but I usually only sit around for the time it takes to eat my sandwich or bento box. Well, unless my boss or supervisor is buying, or if I get to eat at the plant and BS with the guys that are fun to talk to. Normally I am too busy to spend five to ten minutes eating and fifty minutes sitting around. I only take additional breaks during the workday when it is unbearably hot out. We had a span of two weeks last summer where it was 105-114 degrees. I work outside, and that heat really sucked the energy out of me. I could barely manage 12-13 hour days and was moving a lot slower that usual.

When I get really frustrated or tired. Like when I was tired and trying to write some code for a mod for this game and I was getting really frustrated because I kept messing things up and I was just sooo tired and wanted to fall asleep. Actually I think I fell asleep 2 mins later and then woke up and turned the computer off and went to bed.

I'm to tenacious to give up, so I double down then make bigger mistakes in the process. Then I stop from exhaustion.

Except for the tenacious part, I'm kind of the same. Personally, if I'm not happy with my current progress/position, my mindset is "I'm not holding myself to a high enough standard and I'm not working hard enough."