I find it helpful to have:
- resumable tasks - I want to sit down and work, not sit down and figure out what to do
- multiple projects - if today isn't a great day for intellectual pursuits and I keep getting interrupted maybe I'll do an admin task or fix some simple bugs. Also works for when something is stalled.
- acknowledge you cannot control everything - if the progress is delayed in ways the estimate didn't anticipate, document them and keep working