Context
In DagScheduler::tick(), after deferred topology re-analysis (when topology_dirty=true), the max_parallel calculation is duplicated inline rather than using TopologyAnalysis.max_parallel from analyze(). These will silently diverge if the formula changes.
Fix
Use the max_parallel value from TopologyAnalysis returned by analyze() — remove the inline duplication.