When a multi-instance step is executed, OO kicks-off multiple instances or lanes, depending on the number of inputs given to the multi-instance step or the throttling value provided.
During the execution of this step, OO waits for all the currently running lanes to complete. If one or more lane is hung, all the other lanes wait for the hung lanes to complete, essentially making the whole flow going into a hung state.
Having an optional timeout value on lanes will solve this problem as once the timeout is reached for a lane which is taking a lot of time or is hung, the rest of the waiting lanes can proceed to completion.
This is particularly necessary for flows that are performing server reboots, operations across a network, I/O operations, etc in which every lane's behavior can be affected by external factors.