“I’m seeing about 7.5V DC from GND to COM.” — this is normal. COM presents positive voltage.
“I’m seeing -7.5V DC from COM to S2 when “running”.” — you should measure the voltage as multimeter’s red probe on COM (that’s always the highest voltage), and black probe on S2. That should give you a +7.5VDC, and this is normal. Every zone has an internal MOSFET switch which switches the zone port to GND when activated. In other words, the MOSFET switch is turned off (open-circuit) when the zone is not running, and turns on (connects the zone to GND) when it’s running. COM(+) -> Solenoid wire 1 -> Solenoid wire 2 (zone port) -> MOSFET -> GND(-) completes the circuit and solenoid turns on.
In circuit design, this is also known as ‘open-drain’.
To connect relays, it should be relays DC+ goes to COM, DC- goes to GND (the left most pin on the 6-pin terminal block), signal goes to a zone port like S2. The relay you linked to seems to allow settings input trigger level: either high or low. You should select trigger by a low (L) signal as that’s how OpenSprinkler DC works.
If you don’t need voltage boosting, you can go to Settings -> Advanced, and set the ‘Boost Time’ to 0. The voltage booster is needed if you use the controller to directly control solenoid valves, in which case the boosting helps to engage the solenoid in the beginning. For relays which operate at 12VDC, voltage boosting is not necessary, so you can set it to 0.