Now that grbl has support for ENABLE_DUAL_AXIS (https://github.com/gnea/grbl/commit/b75e5571eeaeb22a88304716fb1e7411f9c28be0), would it be possible to use two endstops (one on each rail) with the XController?
No. Not that simple.
To use the auto-squaring, the cpu_map is altered so that the Y axis would be controlled by two, indepently acting drivers. You would need a different controller .
I think you’re better off just making the axes square.
Those solve different problems. Totally agree that you should square up the frame, but having two endstops makes it more convenient to have a home cycle square the gantry to the frame (since you can easily move one side of the gantry and not the other when the power’s off, or a crash could happen). If the required hardware isn’t on the board, though, it’s irrelevant.
I understand the reasoning. I think the common solution is to hold the gantry against the plates or identical spacers when you power up.