I would like to use open source stuff for that (QGIS, GRASS), so I tried v.clean and v.simplify, v.generalize in some combination. Unfortunately, I cannot reach the desired result.
With v.clean 'snap' method, tolerance=50 I reached this:
But I don't need duplicated geometries, or identical zig-zag lines. Probably the v.generalize.network (Closeness, Betweeness threshold) would solve the problem, if it worked.
You can download the clipped geodata here: https://github.com/ewirth/gistemp