TimeDoctor currently shows task in a flat list. I'm not sure about the concept behind the sorting order but I have the impression it's determined by the order in which events for a task first appear in the tdi file.
* Organize the left column with the list of tasks in a tree structure, based on parent-child and threadgroup-thread relations that exist in Linux. An extension of the tdi format is needed to (optionally) specify this information.
* Make the nodes in the tree collapsible, with plus/minus signs like in windows explorer. When the node is collapsed, all tasks in the sub-structure are removed from the task view. As an extra feature, we could display a "virtual task" at the line of the collapsed node, showing the cumulated scheduling pattern of all sub tasks.
* To further sort tasks, next to the tree structure, take into account the order in which tasks are declared in the tdi file (rather than the order in which scheduling events arrive).
All of these features can be made backward compatible: e.g. if the users specifies no task grouping information in the tdi file, TimeDoctor falls back on the original sorting algorithm.