Debugging arduino isn't easy, but you can try with Serial.println(...). That would let you know if your calculation is actually doing anything.
It is possible that the speedSynchro is just very low, so it looks like it isn't moving. Also possible that your savedPosAY is 0.
Bear in mind: you are modifying the maxSpeed of stepper2 to be a proportion of the maxSpeed of stepper1, but that would only synchronise the motors if they were both moving at maxSpeed. During the acceleration portion of the movement, both accelerate at the same rate, going the same speed, until one of them reaches it's maxSpeed.
The approach I've seen used most often is something like
int SPEEDX = 4000;
long savedPosAX = 1000L;
long savedPosAY = 2000L;
int speedSynchro = 0;
...
// set targets
stepper1.moveTo(savedPosAX);
stepper2.moveTo(savedPosAY);
// calculate the proportion of speed difference
// and run the stepper with the shortest distance
// at the proportionally reduced speed
if (savesPosAX > savedPosAY) {
speedSynchro = savedPosAY / savedPosAX;
stepper1.run();
stepper2.setSpeed(stepper1.speed() * speedSynchro);
stepper2.runSpeed();
} else {
speedSynchro = savesPosAX / savedPosAY;
stepper2.run();
stepper1.setSpeed(stepper2.speed() * speedSynchro);
stepper1.runSpeed();
}
(not tested this, but for example).
I wonder if anyone else accepts this as a "done" thing. I haven't tried it recently myself, and I seem to remember it being _not quite as simple as that_ last time I did try it.
sn