Thanks Barry. For some reason I didn't get a notification (sometimes I do, sometimes I don't).
Anyway, for future reference, the key is to set the parameter AC_SectionLineStartOffset (not AC_MarkerSize). However, this will set the offset of the line for both ends - you can't (well, I couldn't) test with SYMB_MIRRORED to shorten one end and not the other.
I would say it's because the line is drawn as a whole, then the marker script is run (or vice versa). Would be nice to have an AC_SectionLineStartOffset1, and AC_SectionLineStartOffset2 parameter, to set each end.
I think I'll live - there are other higher priorities for GS.