Batch mode resolves every output path via _prepare_output_path before any file is written, so the os.path.exists dedupe never fired and duplicate prompts (or prompts equal in their first 100 sanitized chars) overwrote each other. Track paths reserved within the batch and suffix duplicates, matching what the legacy sequential path produces for the same inputs.