146d3cedb2
When a job completes via the essential_completed branch (all essential processors done but some non-essential failed), the PipelineProgress was not being updated to 100%, causing a discrepancy where the status showed 'completed' but progress showed <100%. Now PipelineProgress.mark_completed() is called in both completion paths.