While working on any project, we normally break it down into sub-problems. The solution to a sub-problem may be to add several new sub-problems. Having many open sub-problems can get confusing, so a good rule of thumb would be, at any one time, to work on the sub-problem which is likely to produce the least new sub-problems.
Similarly, an operating system scheduler should choose the process on the ready queue least likely to spawn new processes or require more than one tick of computation. This might be estimated from a process's past behaviour.
An email-reader/task-list-manager that supported this type of prioritization could be useful.