Loiter too large

I’m attempting to setup a small plane using a matek 405-wing running ardupilot 3.9.7. I am seeing some strange behaviour in loiter mode. It seems like the WP_LOITER_RAD is not always respected. With WP_LOITER_RADIUS=20 I was seeing a radius closer to 60m during the first couple attempts, and then towards the end of the flight it was nearer to the target 20m. I’ve seen some similar strange behaviour in auto mode, whereby waypoints were being declared as reached, even though the plane was many times WP_radius away from the target waypoint.

Any idea where to start troubleshooting this?

Log file is here: