but I'm curious if it's hitting the server, then going the router, only to be routed back to the same machine again.
10.0.0.3 is the same machine as 192.168.1.14
No, when you talk to yourself you talk to yourself it doesn't go out over the network. But you can always check using utilities like tracepath, traceroute and mtr. It'll show you the exact path taken.
Technically you could make the 172.18.0.0/16 subnet accessible directly to the VPS over WireGuard and skip the double DNAT on the game server's side but that's about it. The extra DNAT really won't matter at that scale though.
It's possible to do without any connection tracking or NAT, but at the expense of significantly more complicated routing for the containers. I would do that on a busy 10Gbit router or if somehow I really need to public IP of the connecting client to not get mangled. The biggest downside of your setup is, the game server will see every player as coming from 192.168.1.14 or 172.18.0.1. With the subnet routed over WireGuard it would appear to come from VPN IP of the VPS (guessing 10.0.0.2). It's possible to get the real IP forwarded but then the routing needs to be adjusted so that it doesn't go Client -> VPS -> VPN -> Game Server -> Home router -> Client.