The Chain That Forces the Design
Start from a requirement nobody argues with: the two versions must be the same course. Same structure, same examples, same code, same links, same claims. That single requirement, met the way this workshop meets it, runs a chain to the bottom.
The first link is a choice, and it is worth saying so. Two versions can be kept in correspondence by writing both in parallel against one detailed shared specification; localization teams do exactly that. This workshop weighed that route — it is the clean room further down — and rejected it for a corpus whose versions share code, links and structure, because every later edit would have to land twice with nothing to prove the two still matched. Once one version is written first, the rest follows: the other is written after it. Following means the second author holds the first version while writing. Holding it means the second version is shaped by it. So contamination is not a mistake in the process; it is a consequence of how the requirement is met.
Which changes the question entirely. You do not get to ask how to avoid contamination. You only get to ask where it is removed — and it cannot be removed by the context that produced it, because that context is exactly what would have to be set aside.
Why One Pass Cannot Do Both
Authoring and de-contaminating are not two halves of a task; they are two tasks with incompatible requirements. The authoring session must hold the source — that is its job, and withholding it would produce a different course. The repairing session must not hold it — that is its job, and holding it produces exactly the defect being repaired.
Asking one session to do both is asking it to forget on command, which is the single thing attention does not do on request. Every failed attempt in this workshop's history was a version of that request, phrased more and more politely.
The Alternative That Was Measured and Rejected
The obvious escape is a clean room: let a second author write the other version from scratch, from the same outline, never seeing the first. It was considered seriously and rejected for this corpus. Done well, against a detailed enough specification, the route works — localization teams run it. Here the versions share code, links and structure, every later edit would need to be applied twice, by two people, and the workshop had no mechanism to prove the two still matched; the likely result was two drifting products.
What survives from that idea is narrower and still useful: a different author may write the second version as translation, with the source in frame. That keeps correspondence and moves the contamination to a different mind, which is worth something. It does not remove the need for the cold pass, because the second author is still holding the source.