Not many views of the question so probably nobody is interested anyway,
but I found the answer.
I had a VMware virtual network set up at 192.168.0.0 for when I'm on a
train (or at least not at home) so that I can communicate with my VM server
by connecting the VM network adapter with the virtual network instead,
preserving the static IP address. Even when I have the VM connected
directly to the home network, the virtual network is still active on the PC
which meant there are 2 separate networks in that range which obviously
confuses things and takes a while to sort out. I guess it has to wait for
one to time out before trying the other. Anyway, disabling the VMware
virtual network when I'm at home sorts out the problem.