I don't think you should feel guilty. This is the nature of our work. There are days where you "feel" it and days where you don't. There are days when there is a lot to do and there are days when you're in a holding pattern to see what's happening with something. At least here in Pennsylvania, the state labor board actually recognizes this fact and has classified software development professionals as "salaried, exempt" status, meaning there is an expectation of huge variation in hours worked, sometimes plus, sometimes minus. Unfortunately, most employers just use it as an excuse to force employees to work constant plus with no overtime pay.
I don't think I should feel guilty either, yet I do anyway. I don't want to give the impression that I think the guilt is rational, though. Still, rational or not, the feeling is real, and I'm not the only person by any means to have it.
I often wonder what it's like for people who need to use their minds when they work yet are under inflexible schedules, such as teachers. They too must have good and bad days, but they don't have the luxury to say "you know what, I'm just not going to teach anybody anything today, so after second period is over, I'm leaving." On the other hand, now that I think about it, I vaguely remember some high school teachers ending lessons early. Maybe doing so was their version of calling it quits for the day early.
From the teachers I know, and I went to a university that is traditionally a teaching school, they don't use their minds much at all. Most teachers aren't dedicated to the job, they're just looking for a job. They show up, punch the clock, zombie their way through the day, go home at the end of the day, and repeat the next day.