My brain trust came up with this:
Post filter the paths with:
WHERE all(i in range(0, length(path)-2) WHERE
relationships(path)[i+1].departure > relationships(path)[i].arrival
)
But that will not be as optimal as being able to filter inside the repeating pattern. If you study the example in the docs Variable length patterns - Cypher Manual they have made a nice trick where nodes represent the stops for a "time table".
I don't know if that would be an option, to change the model in a way so more properties lives on nodes instead of on the relationships? That may help both wirting the query as well as make it more efficient/faster.
Obvisouly, that depends on the size of the graph, maybe it is "fast enogh" just the way it is now?