Grouping steps by sample
When using a workflow that performs a top-level scatter over samples, we want to be able to monitor the progress of each sample independently.
Currently, all the steps are in a flat list, and the step names are de-duplicated simply by appending numbers.
What I think the user needs is a view that is sample oriented, which hides (to the extent possible) implementation details such as whether it is executed as 1 workflow = 1 sample or 1 workflow = 10 samples or 1 workflow = 1000 samples.
Need to think about what the sample oriented view needs to show.
In general, there's a need to make the workflow orchestration lighter weight (each workflow/subworkflow instance takes up fewer resources than an entire compute node) when scattering over a large batch of samples.