I included one improvement to my backtracking algorithm that is not apparent from the description and pseudo-code that I have shown. Before starting the algorithm I calculate a quick guess for best time for use as the initial ``best so far''. The initial guess is calculated by summing all the smallest costs in the task list. Using that the algorithm can skip any really bad schedulings a bit earlier. The improvement has increased the speed of the algorithm but I believe only by a small constant time. I did not implement any kind of task list pre-processor.