I'd say if you have extra time, use it productively for some of those related-but-inessential tasks that rarely get budgeted for, like refactoring, optimizing, writing tests, experimenting with new tools, etc. Spend the time on things that benefit your employer/customer but will also improve your skills or make life easier for you.
I've done this a few times in my career when I inherited a big poorly-written codebase. Whenever I finished a task early, I'd spend some of that extra time making improvements. Over a few years you can really make a difference. And those improvements are the kind that will let you continue to exceed expectations in the future.
Even if you do those things that benefit your company however, in theory at least you should have reported back that your task is finished, and you'd usually be assigned with what's next on the priority list... So still the temptation is always there.
It's a gray area, but if my task touches module A and I spend some extra time cleaning up module A, or writing tests for it, my conscience is clear. Or if I finish a deployment script but think reading a Chef tutorial might teach me a better way of doing it next time, sure. The work may not be finished just because "it runs." I wouldn't fill up 4 hours with that kind of thing, but 1, sure (depending on the urgency of other tasks, etc.).
I guess it also depends on your company culture and your boss's/client's expectations. I have clients who would get upset if I billed an extra half hour, and other clients who want me to spend that hour on tests/refactoring.
I did the same before I learned to accept my limits and say no to what went beyond them, including pressure on myself to keep my commitments.
It actually makes perfect sense that if you can't resist the pull of expectations, you'd better make sure expectations remain at a (relatively low) level you'll be able to live up to even in down-time.
For what it's worth, I'm in this situation at the moment. Was working on a project where I found it simple to finish things quickly. Am now on a project where things are considerably more complex but it's expected I finish them at the speed I was previously.
Not sure how to crawl out of this hole, other than to continually get faster at everything.
You can also go back and tell them that your previous speed is probably an outlier, but you don't/didn't do that because you want to maintain this high level of expectations.
I'm not sure I'd even advice against it, since that mechanism is what kept me improving until 30, but at one point it'll also pull you beyond what your physical limits ... and that, my kids, is how I me^H^Hgot a burnout ;)
"How do you win a 100m swimming race? You start at your absolute top speed, and slowly slowly increase the pace"
I remember many occasions when I finish a task earlier than expected, and then always struggle whether I should stretch it and pretend it took me longer, so I can still do it faster than expected, but not disproportionally so.
The somewhat flawed logic is that if I do things too fast, I'll just get more work assigned, and expectations will rise, which will make it progressively harder for me to achieve.
I'm not entirely sure where the flaw lies exactly, but the most impressive people I worked with always seemed to be those who finished things quickly, and somehow it didn't bite them back. Others would just learn to trust their assessments, or if they are stuck would know it's not for lack of focus or trying, but that it's a genuinely tough problem.