@phaedrux The two issues with G10 are that you can't make changes on the fly that result in a nudge to the print head, and that it feels like a bit of a black art as to whether you need to plus or subtract to the existing values in order to effect the change you need.
I'll look into M500 P10 to see if there's anything more there to play with.
Ultimately, the existence of conditional code and variables allowed me to concoct a solution that works for now, but it's impossible to be certain the implementations won't change, leading to required adjustments in all that thinking.
I'm grateful that you led me towards a viable solution.