The default automatic homing/squaring sequence for paired gantries is well detailed in the documentation put out by Centroid. I have a quick image here to summarize:
1 - Homes to slave switch
2 - Backs off slave switch
3 - Unpairs axis - no longer moves slave axis
4 - Homes master switch
5 - backs off master switch
6 - moves an additional amount on master switch only, as programmed to correct to square. Pairs axis. Done.

There are two main goals to a homing/squaring algorithm:
1) Reliable in all situations
2) Minimal wear/load/torque on machine
My main concern with the standard algorithm:
Referring to the diagram above, In Step 1, If the gantry is out of square such that the master switch is CLOSER than the slave, there will be a hard collision and system failure. To prevent this, the axis travel distance from the slave to the master switch must be increased so that it is always larger than the maximum skew possible on the gantry. The problem is that now the gantry now must torque itself to nearly its maximum every time it homes,

This causes undue wear and stress on the structure of the machine, the drive system and the motors. This also eats into useable table area, as this backoff distance, plus the distance from the master to slave switches, cannot be used for machining.
Proposed Homing Sequence
Considering that the normal homing sequence can't operate unless you have a separate homing switch for each of the master and slave axis anyway, I suggest the following to actually make use of that and to minimize torquing, wear and table area wastage.
Operator specifies master switch correction distance in positive or negative.
1) home until EITHER switch is triggered. Do not back off triggered switch - this will only increase required torque on gantry.
2) Unpair axis, and finish homing OTHER switch until triggered. This is the minimum amount of gantry torque possible.
3) Move master a positive amount if specified, or, if specified correction direction is negative, move the slave a positive distance instead.
4) Pair axis - they are now square.
5) Move axis until both homing switches are clear.
This would give the maximum useable table space, and the minimum torquing of the gantry under any circumstances, and requires no additional hardware. It also allows the operator to set up their switches as square as possible. This is 100% a software fixable situation.

Making it happen
I would love for centroid to consider changing the default squaring to this system, but regardless I would like to at least pesronally write a macro to do this. Given that the M91/92 and M105/106 only look for a single switch input, what would be the best way to have it look for both inputs?