You can either implement your vcRouting ->processRoute function and check the capacity available for target conveyors . For each part entering the shuttle you can deliver it first available conveyor pair. However this can be painful to manage all routing by yourself if they are not specific .
Simple way can be adding 1 more target port to line 92 @flow logic and test its connection by using routing rule :
ex : check odd numbers 1-3-5 and if 1 is available check 2 if both ok go else loop it.
secondInQueue = task (part in second conv. and related port number )
targetPort1 = -1
targetPort2 = -1
while targetPort == -1 or targetPort2 == -1:
targetPort1 = routing.processRoute(firstInQueue, part, flow) # Take target port
targetPort2 = routing.processRoute(secondInQueue, part, flow) # Take target port
from the routing rule
if targetPort1 == 1 and targetPort2 ==1: