One known factor: if you have a single piston that has many devices, it may time out. Sometimes it’s better to break up devices into multiple Pistons just to stay under the timeout threshold. The folks in the core peer Assistance threads can say more about that.