Apart from what I mentioned in the jira description, here are a few other fixes:
1) Changed the speculative cap to take into account the tasktype (map and reduce). In the
HADOOP-2141 patch, it is a global count for maps and reduces. The problem I encountered was that in some cases, the reduce tasks would take up the slots towards the beginning of the job, and the last few maps wouldn't get any speculative slot.
2) Changed the dispatch time for a task to be per task-attempt based. In the
HADOOP-2141 patch, it is per task based.
All the unit tests & test-patch passed.