I'd love to see a todo app that was not the same linear list of things, but a tree of subtasks. I input one thing, then it asks me "Can you break this down in to subtasks?". To which I type in subtasks, then it continues to ask me for each iteration until I can break it down no more. Then, it presents a list with the smallest-unit item first.
My only problem with this type of workflow (and the list workflow also) is that often sibling, parent, and child tasks aren't apparent until you are in the middle of, or complete other tasks. So at most I could get a start on a task list/tree, but it wouldn't come close to reflecting reality until the project is completely done. Also, many sub tasks are easier to just do than to describe, yet they don't group together that well under a general parent task.
Of course if a tool could keep track of changes as the project progresses (along with a change log of reasons for each task add/removal), then it could be a good resource improve your estimation skills.
I've been using Checkvist for everything task-wise for years; can't recommend it highly enough. The API is also super easy to use, if you want to integrate it into your dashboard and such.