5. If the first non-unknown type is a preferred type it is chosen, otherwise it is made a candidate, and then,
6. each subsequent type is compared to the current candidate, with a new candidate being chosen only when there exists a non-mutal implicit cast to the new type.
6a. If at any point a preferred type is made a candidate then it will be chosen.
More concisely:
Make the first input type a candidate type. Each subsequent input type is compared to the current candidate, with a new candidate being chosen only when there exists a non-mutal implicit cast to the new type. If at any point a preferred type is made a candidate then it will be chosen.
In my original the whole if/otherwise in 5 is pointless given the presence of 6a.