Some corner case issues can be fixed:
1) Setup task should not add anything to the job statistics (since they are really fast and might affect the statistics of a job with few tasks)
2) The statistics computations should be guarded for cases where things like sumOfSquares could become less than zero (due to rounding errors mostly).
3) The method TaskInProgress.getCurrentProgressRate() should take into account the COMMIT_PENDING state
4) The testcase TestSpeculativeExecution.testTaskLATEScheduling could be made more robust