1. A method for utility-optimized scheduling of computer system tasks, the method comprising: determining, by a processor within a first computer system, a time window comprising a candidate schedule for a new task to be executed on a second computer system; identifying, by the processor, a plurality of other tasks scheduled to be executed on the second computer system within said time window; identifying, by the processor, a plurality of candidate schedules that each specifies the execution times for at least one of a plurality of tasks, the plurality of tasks including the new task and the plurality of other tasks; calculating, by the processor, an overall utility for each candidate schedule based upon a task utility calculated for each of the plurality of tasks when scheduled according to each corresponding candidate schedule; and queuing, by the processor, the new task for execution according to a preferred schedule with the highest overall utility.