To "acquire" a second robot you can utilize the same structure that the stations use: The first robot's token pushes itself to the cart request list so it can be pulled by another available cart. You just need to differentiate between the cases of the cart pulling a station's token or a robot's token. This could be done by using a shared label with different values that identify the token as either belonging to a station of a robot.
If a robot's token is pulled, the pulling token doesn't initiate any actions by itself but simply waits until the other token (the one of the first robot) is done with the synchronized sequence of tasks. The attached model contains an example of this. (The case of acquiring a second robot only keeps the robots occupied for some time without actually doing anything. The model is only meant to demonstrate how to use a second robot)

Other things you will have to think about to get the process to work:
- How to identify if the item is placed in a middle slot that might be blocked (the attached model uses slot labels for this)
- How to check whether the item is actually blocked
- Possibly by keeping a reference of each neighbouring slot for the middle slots
- How to determine where the second robot is taking the blocking item (easiert solution might be temporary waiting spots at the side of the grid, so they can't block other robots while they wait for the actual request to be fulfilled)
amr-double-deep_mockup.fsm