How does this work when tasks in a stage get retried?  For example, consider a stage with with 3 tasks, where first task 1 finishes, then task 2 finishes, then a duplicate, speculated version of task 2 finishes, and then task 3 finishes.  It seems like the accumulator values from task 2 will be added twice and the values from task 3 will never be added?