I'm not sure what has caused it but now I can't ping the RPi4 at all.
Hopefully not a broken RJ45 connector.
Calling ethtool directly from udev is not working because the PHY needs to be UP. As work around I used a delay but this may not be bullet proof.