Similarly to a regular one - except you could subdivide tasks as much as needed and specify dependency relationships between them. You wouldn't have problems representing all too common situations where one task is a subtask of two other tasks, or where one task has a hard dependency of another task's subtask. You could view tasks to be done as a network, using critical path analysis to get a better picture of how long things are going to take, and how much slack you have in the project.
I think Phabricator has implemented this behavior with parent/sub tasks. Tasks in manifest[0] are a node in a network, where a task can refer to multiple parents and sub tasks.
I didn't know that. I've heard mixed things about Phabricator before, so I've never really bothered to play with it. I guess this is a good time to check it out. Thanks!