Why is ping so high when client & server are on the same machine?

35 milliseconds is suspiciously close to 30 fps. Does this value match your frame rate?

Without looking at the code too closely, I suspect this relates to something that is only called once a frame - possibly UNetConnection::Tick().

I wouldn’t worry about 35 milliseconds. Keep in mind that client side moves (that originate from player input) are only passed from the client to the server once per frame (via a reliable message) - any network latency is on top of this.