I finally have a solution to this problem, and I’m posting it here in the hopes it can save others some time.
In short: a significant number of fonts have inconsistent metrics between their WinAscent/WinDescent and Ascender/Descender/Line Gap values. Since Dorico does not use typo metrics for font rendering, but rather the dedicated Windows and Mac metrics, this causes fonts to appear differently when projects are opened and exported cross-platform.
The solution is as follows. Here are the default metrics for Minion Pro:
You can see that the values for Win Ascent and Win Descent (used on Windows) don’t match the values for Ascender, Descender, and Line Gap (used on Mac).
To make Mac output match Windows, simply set the values for Ascender and Descender to match Win Ascent and Win Descent, and set Line Gap to zero.
Here’s the result in Dorico, checked at a large point size to make sure it’s exact. Both outputs are identical. The file was created in Windows, then checked on Mac:
Line leading also displays correctly now:
What I have not yet tested is how to make Windows match Mac. I imagine if you were to keep a value for line gap, the Win Descent and Ascent would have to be adjusted proportionately. Perhaps in this case, adding 100 em units to each to split the difference of the line gap. But I’ve had enough of this, and I’ll leave it to someone else to test that.
This probably goes without saying, but you’ll have to edit the metrics in a font editor, export the new font, and install it on both systems. Caveat emptor.
Since Dorico calculates line leading based on ascenders and descenders, I imagine these values are particularly important to get right.
Anyways, I’m very relieved to have this fixed, since I’m thrilled with Mac on laptop, but I want to preserve my many files created previously on Windows. Hopefully this helps others in a similar cross-platform situation.