@infiniteloop It was specifically how the GCode part of it interacted that I didn't understand. The HRP is explained, and the GCodes are named, but how they interact seems to be a weak point of the docs.
Thanks you, everyone! It's been very helpful and I think I have it worked out now.
So here's the end result, in case it helps any future enthusiast to have an example:
Bed.png
The measurements I used in this discussion were rounded versions of my real machine to make it easy to talk about; this image contains the real values. Here's the actual geometry and what I settled on for settings. I left M208 X0 Y0 and used the probe as HRP, which simplifies the probing issue, and using the primary nozzle seems like it complicates and confuses things when using the secondary. In theory, my 2 nozzles and probe are supposed to all have the same X coordinate, but I had to fine tune it so the 2 nozzles come out in the same place given the same G0 or G1 command, and in real life they aren't quite in a line.
Regarding bed leveling, it's my understanding that the probe points need not all be in exactly the same relation to their respective screws as one another - that the differences are compensated for in the math. I did the best I could on each one, but naturally the machine home prevents getting toward the front enough to be close to the front left probe point. and the fans are in the way on the right probe point. My leveling isn't actually all that repeatable, but I'm assuming that's my build material not being held down well enough (PEI 2mm).