Earlier quoted context omitted.
Couldn't you have one main task which describes the overall task and then it has a list with checkboxes that has links to the other tasks it depends on? When one subtask is done, you check it off. "Ideally then, given all these tasks and their dependencies, what should I work on next?" I doubt a system can automatically propose the ideal task to work on anyway. There will be many tasks equally important and which are…
> Couldn't you have one main task which describes the overall task and then it has a list with checkboxes that has links to the other tasks it depends on? That only works for trees of tasks, ie. when a task is a dependency of at most one other task. Imagine you have two high-level tasks: "repair the chair" and "repair the computer", which both depends on the task "buy a screwdriver". Without support for DAGs of tasks…
In that case I would have created a task "buy a screwdriver" with a relatively high priority or scheduled before the other tasks and maybe link to or comment about the other tasks as motivation to why the screwdriver is needed.
In practice, when using basic to-do apps like the one mentioned here for simpler projects such as re-build the living room or a one-man software project or just some around-the-house projects then I think a DAG is a bit overkill and complicated. You would also need to remember to connect the screwdriver dependency to any new task that depends on it and also avoid creating a new duplicate "buy screwdriver" task as you did not know/find the already existing one.
For projects such as "build the next generation 747", for sure something DAG like is needed.