Resolution: The Process Engine does not re-initiate patterns in loops. That means that A, B and A` (the second instance of A) are all in the same SOD group. The user who worked on A cannot work on A`. Don’t use Separation of Duties rather use RQL. See the attachment (Filename: sodloop.jpg).
An example using RQL.
On the marker task, in the work manager release script, assign the user name who completes the task to a case variable.
markerName = WorkManagerFactory.getWorkItem().getWorkItemResource().getName();
Use a RQL to assign a participant on the checker task, for example:
dynpartfollowup = "group(name='FollowUp') intersect not resource (name='" + markerName + "')";"