There's a happy end to this thread. I picked the Volvo up from my mechanic today. There was a load of green gunk inside the diff, clogging up the sensor. It was removed, cleaned, put back in, and it worked straight away.
I'm not sure where the gunk came from, but it's likely just wear and tear. I have a persistent wet patch in the rear driver-side footwell. There's a bay under the driver seat that has a vent directly out onto the carpet. That bay is full of water, and the waves crash over, and through vent, and flood the carpet. I've never been able to find how the water is getting into that bay.