I work for a watch company and run with 4 to 10 watches, depending on what needs to be tested. I run with both our own Timex GPS watches as well as many competitive devices for comparison.
First off, for those with existing watches, who are not looking to upgrade, but would like to see better performance of the GPS path relative to the road, there is a pretty simple trick. That trick is to take your watch outside and get your watch into the GPS workout mode (but don’t actually start the workout) for at least 5 minutes prior to starting your run. This allows the watch to completely download the local ephemeris data from the satellites in view. I find that this makes a huge difference, particularly for any of the Sony GPS chipset based watches (Garmin , Suunto, Polar, Coros, Amazfit, Timex, etc.). Most of these companies switched to Sony (from MTK) starting with their 2019 models. Most GPS chipsets (like Sony) support loading the watch with server generated ephemeris (SGE). This data is what allows modern GPS watches to get a GPS fix very quickly. In the early days of GPS it would take 1-2 minutes for the GPS to acquire the fix and be ready to track your location. The server generated ephemeris is loaded (via the mobile phone app, or via USB connection to a PC) anywhere from once a day to once per week, depending on the watch manufacturer. The SGE allows for the ability to quickly obtain a fix (as the GPS only has to decode time from the satellites in view, as opposed to decoding their ephemeris data). The GPS will try to download the local ephemeris once the fix is obtained, but it you start moving right away it is far more difficult for the GPS to do so and it may take many attempts for it to successfully do so. Letting it sit still for 5 minutes, prior to moving insures that it can download the local ephemeris data, which contains the most up to data data on the satellite’s position in the sky. This can result in point accuracy improving from 25-50m of error with just SGE to under 5m of error with local ephemeris.
Note that this only works for watches which allow you to “turn on” the GPS without starting the workout as well. The worst for this is Apple Watch, where all of the workout apps for it start the workout and the GPS at the same time. With watches which behave this way, you can start the workout and then let the watch sit for 5 minutes prior to moving, but then you end up with that extra time added to the run.
As far as watches go, from our testing the most accurate watches for tracking are currently the Apple Watch Series 6 (when used without the phone being present), the Garmin 945 and the Coros watches. The Garmin Fenix 6 is one of the biggest letdowns for such an expensive watch, with worse GPS position accuracy than watches 1/5 its price (like our Timex Ironman R300, which feeds my Strava account that is my primary input to CityStrides).
The older Garmins which used the MTK chipset (like the 220, 225, 235, 920XT, etc.) perform better than most of the newer Garmins (with the Sony chipset), but the Sony chipset is so much more power efficient, that the battery life is way better for the newer ones.