Emacs Org-Mode. I'm still getting the hang of it, but keeping my TO-DOs in line with agenda mode and clocking in and out of tasks to really see how much time I've been putting in has worked wonders. I also use the Seinfield method[0] in Org mode to keep track of my consistency. To each their own though, of course, and so YMMV.
>http://dontbreakthechain.com/