How can I race against a GPX track?
I used an old app called cardiotrianer for Android. It's old, but should still work for this purpose. It tells you how far in front or behind you are. I don't think you can just read a gpx into it though. You'd need to record the run/ride first. So it would give you the same issue as the other apps you tried.

I would suggest submitting a feature requests for RunnerUp. It' an open source app and the developers are quite active.

https://github.com/jonasoreland/runnerup/issues

I'm sure they would be interesting in adding such a feature.