Four levels of concurrency limiting. Effective limit = min(global, task, stage, model).
# Global (across all tasks)
multi_runner = MultiTaskRunner(concurrency_limit=256)
# Task-level
config = TaskRunnerConfig(concurrency_limit=128)
# Stage-level
config = TaskRunnerConfig(concurrency_limits={"infer": 64, "postprocess": 32})
# Model-level
model = ChatModel("gpt-4o", concurrency_limit=32)