But if you can specify dependencies, then you could set it to only show you the todo items that you are enabled to do. Then when you cross one off, it would be replaced by the items that you are then enabled to do.
So I have a system like that now. It's not hierarchical; the todo items can have multiple parents, and multiple children.
And what's cool about it is that it generates clickable bubble graphs. Here's an example of my current list:
In the application, you can click on any of the bubbles to go to the page for that todo item.
So if you'd like to try it out, drop me a note. It uses the same membership database as my Checkin System.