There is a problem with the y-offset of the x2label. The offset value has a different effect if it is equal or larger than minus unity, then it has for values below -1. It seems that, up to -1.0, it is placed above the x2tics, and below -1.0, it is placed below the tics. The effect, thus, is more dramatic if you have rotated x2tics. This prevents the manual placement of the x2label close to the x2tics.
Code snippet as minimal working example:
set x2tics # rotate by 90
set x2label "X2" offset 0,-1.0
plot x**2
set x2label "X2" offset 0,-1.01
plot x**2
(I'm using gnuplot 5.2 patchlevel 2 on Windows 10.)
Unfortunately it is much more complicated than that. The plot layout calculation has to allow for axis labels, tic labels, the tics themselves, graph borders, timestamp placement, and probably other things I am forgetting. Sometimes the combination of those elements triggers a discrete (rather than continuous) change in placement for one of those as you adjust something else. It may help help to fix the plot border while tweaking other things
In this particular case I can suggest another work-around by forcing the x2label to be treated as larger than it really is:
Last edit: Ethan Merritt 2019-05-24
Thanks for the explanation, the work-around with the linebreak is very helpful.