I've now tested on my STF (Mega ST, 8.01MHz) as well - booted in WS2. Your test programs give me the same values as you got.
Also, my test program (the one I attached earlier) worked exactly the same as on my STE. That is, the synclock resulted in the same position (since the right borders were successfully opened). Due to the STF booting in WS2 I had to move the lower border switch two cycles (from 502 to 504) which is as expected.
So, even though I'm also synclocking towards the videocounter it didn't influence my measurements. Which it shouldn't - else we'd have lots of STF demos that were 4 cycles off when trying to open left & right borders (where the right would always fail).
Looking at your code you have 40 cycles + a move.b in your switch (48 cycles in total). It's still possible for it to both open the lower border as well as creating a +2 line on STE, which would influence the values of the video counter when you later check for it. However, from your code snippet it looks like your finding the switch position "from the left" which should mean you trigger early, not late, and then it shouldn't matter. So, no new suggestions on my part for what could cause the different readings.