My approach consists of using a global tasksequence list. I push the tasksequences in a dispatcher to the list when the dispatcher receives a tasksequence. The list contains a field telling me the number of the order in which the tasksequences should be dispatched. I get this value from the index of an array of the processor treenodes. The processor reference is in the utilize tasksequence the 4th task 2nd involved parameter.

A process flow starts by the event when a resource gets available (operator).

I copy a label value to the token to identify the next number of the order. I evaluate a counter by a modulus operator to get the number sequence 1,2,3,4,5,1,2,..
Then I pull from the list the matching number of the sequence.
A custom code activity move the tasksequence to the operator and dispatch the tasksequence. An assign activity extract from the fourth task the 2nd involved parameter to identify the processor, which the operator assists for setup. I need this data to wait for the event to finish setup and free the operator from his utilize task. Before this action I update the counter label at the operator.
order-ts-to-flow-rank.fsm
This approach is based on the following abstract model, which sorts tokens. The process waits until the right token is available on the list.
order-tokens-incomplete-list.fsm
PS.: This answer contains a complete model now