The specific lasers I went with were from this thread.
The light travels straight of course but the line that’s projected is not quite a plane, it has a slight curve to it meaning it’s a very slight cone shape. I don’t think the amount of curvature of the cone is enough to affect me because I’m not using its straightness over a wide angle.
I could make the arm shorter but I decided to make the arm long enough so I have freedom to put it on either side of the router, so I can make the measurement whichever way is most convenient.
There is another aspect which I omitted from the original post because it was getting long, and that is that the laser line must be not only parallel to the rail but vertical. The reflection of the laser is not all on the same Z plane so if it is tilted then it throws the measurement off. I have a string with a weight hanging to help orient the laser vertically.
I haven’t measured the roller-to-corner distances to assure squareness because I don’t trust my measurements well enough to have them stack up: x gantry parallel to y side rail, y side rail perpendicular to x side rail, x side rail parallel to y gantry. Although now it could be interesting to see if I use the laser to square x the gantry to the frame and the y gantry to the x gantry, how much difference do I get between the rollers-to-corner distance at each end of the y gantry. In other words do both methods agree in getting the gantry parallel to the frame.
I see this as something like a steel square, but one that works on non-intersecting tubes with extra junk at the intersection. I would rather not use it every time, so I am thinking I will use it to get square and parallel with the frame, and then shim my hard stops so that both motors ‘pop’ at the same time. Then the relative steps between the motors should be repeatable and everything will be square. Then I can draw lines on the spoil board which for my purposes should be good enough to orient the workpieces.