I've answered a similar question at devops.stackexchange.com. I believe this is a bit overcomplicated and it should probably the Jenkins team should think of a way to simplify the way dynamic stages (be they parallel or not) can be used in a declarative pipeline.