I feel like this should be solvable on the software side, especially for medium or long distance runs. If I look at the traces, I can see that the recorded zig-zag is obviously wrong, and a bit of smoothing should be able to fix it.
Are there any running apps that are accurate?