IMO, a x64 branch should be created just for the x64 changes, and the trunk (or master in git) should remain x86. All the x64 conversion work is done in the branch, without the need to keep x86 compatibility or to maintain 100% functionality 100% of the time (that's what the trunk/master is for, stability). Any updates, bug fixes or new features, not x64 related, should be done in the trunk/master, or appropriate branches.
Here is the trick: the x64 (and any other branches) should be regularly updated with the work from the trunk/master, by merging it to the x64 branch. This doesn't have to be done after every single change in the trunk/master, but has to be done once in a while as to minimize the workload of converting the new changes to x64. I've watched people age because they let changes accumulate and then had to do one huge merge.
Once the x64 work is done, the trunk/master will be stable, with features "x y z" and in x86, while the x64 branch will be the same, but with 32 more 0s and 1s.
I assume the idea is to do away with x86, so the x64 branch now gets merged to the trunk/master and, as the french say
et voilá!, Orbiter x64 rules and x86 is history. BTW, this final merge is the easiest.