Thanks all. I did check the ground resistance on the USB supply - and it all checked out OK. About 0.5 Ohms, same as the VBus line.
However, this did get me thinking about the issue of ground impedance. I inspected the devboard PCB, and it's a two layer board, with the ground as copper fill areas. However, when I traced out the path from the ground breakout pin on the board, the route taken by the current to the MCU is very long, as it jumps from small copper island to copper island through a series of vias.
The reset line is also very long as it connects to various switches, breakout pins, and debug port, making it probably the longest trace on the board.
So, I had the idea that maybe the current flow as the ground voltages equalised was coupling a glitch into the reset line, and this was what was upsetting the MCU. I modified the board by installing a 100 nF capacitor on the reset line, approximately 1 mm from the MCU pin, and also adding small ground wires to the MCU decoupling caps so that they connected directly to the MCU pins, instead taking the long route through a half-dozen copper islands and vias. This appears to have completely eliminated the crashing/rebooting issue.
I'm guessing now that if the devboard had been built with ground planes, that it might be rather more immune to this type of glitch. Would this be a strategy if I wanted to build an MCU circuit, but wanted to keep it double insulated/not connected to mains earth?
If I want to use mains earth, then would it be right to just add a chassis ground connected to mains earth, and then high resistance couple it to signal ground (10-100nF || 1Mohm as suggested by @dobsonr741) ?