Let's say there are 3 hold positions on the outer loop: 1=pre-load, 2=load, 3=post-load. Start out with empty cabins at 2 & 3.
Scenario 1: a party needs to be loaded. They are loaded at #2. When loading is complete, cabins at 2 & 3 are sent online, and replaced by 2 empty cabins. The empty cabin that was holding at #3 can be loaded as it passes thru the main load area.
Scenario 2: an arriving cabin needs to be unloaded, while no loading is in progress. Empty cabin at #3 replaces it online, and passes thru the main load area. Cabin at #2 advances to #3. Arriving cabin stops at #2 for unloading & loading.
Scenario 3: an arriving cabin needs to be unloaded while a cabin is being loaded at #2. The arriving cabin holds at #1, and a message tells riders to remain seated. Cabin at #3 goes online to fill the gap. When loading is complete, cabin at #2 advances & holds at #3. Arriving cabin advances to #2 for unloading. If another party is waiting to board, they are loaded immediately at #2. When unloading and loading are complete, cabin at #3 goes online, and cabin at #2 either goes online or holds at #3, depending on whether it is occupied and whether another cabin is holding in #1.
Scenario 3a: same as 3, except a 2nd cabin (B) arrives for unloading while the 1st arriving cabin (A) is still at #2. When the 2nd cabin arrives, the cabin at #3 is released online immediately. The cabin B holds at #1 while unloading/loading of the cabin A continues. When ready, cabin A advances and holds at #3 while cabin B moves to #2 for unloading.
Net effect is there are always 2-3 cabins in the outer loop, and there is always a cabin at #3 ready to go online when a cabin arrives for unloading, and always space at #1 to receive the arriving cabin.