I love Google's
70/20/10 model. I think even more so for indie games, it should be distributed that way.
8 hours a day is ideal, IMO, with a fat hour long lunch break. Too short and you don't get any momentum. Too long and you're burned out the next day.. and work enough to cover up for that and you'll be burned out the following day, and so on.
There are some tough tasks that require you to slog through. A strict 8 hour a day actually helps with that, otherwise, it's just too tempting to run off and play some game for the whole day.
Usually do the 70% thing early in the day. The 10% thing late in the day when I'm more tired and feel like clicking through tons of articles or messing with graphics/music/sound. That 20% of not-so-core stuff I usually spend a whole day or maybe a week on when I'm tired of looking at core work.
I like to save the hard stuff early in the day, easy stuff late in the day or near lunch hour. If I'm having a particularly rough day, I force myself to take a full 1-2 hour lunch break, maybe even cook something nice and watch a movie.. then get back to work right after.
With a full time job, I normally don't spend any time indie at all.. I already spend the whole day coding, and it's pretty similar to personal projects anyway. So usually I just read through emails, look for forum skins, better Notepad++ fonts, find cooler tools, learn keyboard shortcuts. That kind of optimization stuff.
Weekends I sometimes spend full time on my games, but lately it's just spent improving programming technique.