We should add a column to the web ui to show stage attempt id. Then tasks should be grouped by (stageId, stageAttempt) tuple.
When a stage is resubmitted (e.g. due to fetch failures), we should get a different entry in the web ui and tasks for the resubmission go there.
See the attached screenshot for the confusing status quo. We currently show the same stage entry twice, and then tasks appear in both.