Natürlich könnte man jetzt alle Zwischenstationen vergleichen und schauen, ob der Winkel zwischen den Punkten ähnlich ist und schauen ob die Richtung nicht weit aus der Horizontalen abweicht, aber das ist relativ aufwändig.
Ist es das? Du musst nicht alle Zwischenstationen vergleichen, sondern einfach die Geste als ungültig werten, sobald die horizontale Abweichung groß ist. Also in touchmove prüfen.
Ich denke, das ist der Weg, den du gehen muss, und letztlich der einfachste verglichen mit irgendwelchen generischen Bibliotheken.
Mathias