After trying a mess of time management "systems", I finally came up with something that's working for me quite well. I use google calendar...but instead of tasks, I set up appointments for myself. They're color coded yellow for work, gray for errands & home stuff, green for personal projects or "me time" and red for a scheduled, actual appointment. The description of the meeting/task includes A,B,C,D for must/should/nice/delegate; I always write AAA BBB CCC etc so it's a searchable string. Stands out better, too. I can also include links and reference materials for myself if needed, so when I'm in the grocery store, I have the shopping list attached to the "shopping" errand.
For me, actually scheduling a hour to run errands or a half hour to do dishes or three hours to garden seems to have had the psychological side effect of making me do it with as much consciousness as having a meeting with someone else.
Being visual, it's ~really~ easy for me to see where I may be out of balance between work/home/self just be seeing if a particular color stands out in a particular week.
I've got the added benefit of sharing the claendar with family and friends so they can coordinate with me to get together and get things done--they know that yellow and red are fixed in stone, as are any items designated AAA.
Overhead is as complex as I need it to be. A quick "AAA - laundry", a few clicks, and I'm done. Or I can spend ten minutes pasting links to a couple NAS systems I want to read about some evening.
Sometimes I'll encounter tasks of a yet-to-be-determined length. For instance, I know a client needs a website update, but I have no idea if it's a 40 hour project or a six hour project. In those cases, I'll take my best guess (usually I'll allocate a week) and make "work on client website" a five-day all-day appointment. I'll have my "meeting with client to gather requrements" appointment set, and sometime between the two, I'll aloocate a half hour or an hour to "eveluate client requirements and schedult work time." That's when I know the exact number of hours and the exact deadline, and can change the all-day events to specifically timed events.
I would say that in 80% of cases, I finish things when they're scheduled to be finished. When I don't, it's usually becuase a client re-prioritizes someting for me or I realize I'm out of clean socks, so laundry needs to happen tonight instead of Thursday. I review my calendar twice a day. Before I start anything, just to review what I've got to get done, and then at the end of the day as a checkup for how I did. Of course, if soemthing new comes along and I need to re-prioritize, I can take a few minutes to do that as needed. In the 20% of cases where I don't complete a task, I just drag and drop it to the next available open slot. I may need to juggle some things around in the schedule, but it's a very intuitive interface to visially see where tasks and appointments are going to land.
For personal "I'd like to do that someday..." I color code that green with a CCC "nice to do " code. I put it in a calendar slot that's open, usually on a weekend, then move it to another time when something with a higher priority comes along. Again, it's just the idea that as a graphical interface, it's easy to drag and drop to-do appointments from one place to the next.
The biggest advantage to me from a productivity standpoint was rather than having a "to-do" list, I have an actually "appointment" to pay bills or do laundry or work on a client's project...and that's what I've found works the best for me as a system. I've also found that the flexibility to just move an appointment to another day when something pops up unexpectedly is super easy. I can instantly see what my future schedule looks like when I move an appointment, too.