The specification is ambiguous as to how to deal with the behavior of Catch when in a Parallel State. The spec says:
If any branch fails, due to an unhandled error or by transitioning to a Fail state, the entire Parallel state is considered to have failed and all the branches are terminated. If the error is not handled by the Parallel State, the interpreter should terminate the machine execution with an error.
So I take that to mean the first error encountered across any parallel branch is singled out and passed to Catch, ignoring/terminating all other branches.
The specification is ambiguous as to how to deal with the behavior of Catch when in a Parallel State. The spec says:
So I take that to mean the first error encountered across any parallel branch is singled out and passed to Catch, ignoring/terminating all other branches.
This need to just be codified and implemented.