The one-pod-at-a-time model is exactly why distributed training jobs stall on a busy cluster: part of the gang gets placed, the rest pend, and the placed pods hold GPUs idle. Treating the whole job as one scheduling unit fixes the utilization problem, not just the placement one.