Yh Sanji defeated Wanze after. But if were not counting Satori and Ohm, best not count those 2 as well.
The times you said kinda make sense for me
Mihawk and Gin make sense, because it was Sanji's arc and Gin was more important for the plot of the arc, while Mihawk was tied to Zoro's end goal and the world, so Mihawk going first and then Gin later makes sense.
Arlong Park was Sanji's first arc in the crew after his introduction, so Oda wanted to give him a bit more shine and Zoro was still fucked up from fighting Mihawk, so it makes sense Zoro would fight Hachi first and then Sanji gets his fight and helps Luffy out.
Satori and Ohm is just kinda weird, like you said.
and the Sea Train also makes sense because Zoro and Luffy had that moment of trying to help out when they were attacking Iceburg, which Sanji wasn't a part, so it made sense that Oda would give the shine to Sanji when the train stuff started to happen and he went to help Robin
Edit: now i'm not sure about Wano...
maybe it can happen too because Oda already gave Zoro the rooftop while Sanji was stuck with Black Maria, maybe that's what he decides.
it just seems like a weird decision to me because of how much screen time and focus Zoro got this arc, getting involved with the characters and the place a lot more than usual, for his fight to end earlier and then Sanji gets the final fight before Luffy.
that only works for me if we get Straw Hats vs Kaido after and Nothing Happened 2.0 because of the drug against CP0 or ZKK, something like that.