Well, I removed the fuel pump and couldn't see anything wrong, apart from the float arm stopper being bent which allowed the float to go higher than usual and past the sensor area. I'm not sure if this would make any difference to the fuel light, but it looks like it's been going past the sensor area for a while 'cause I can see the where it's been rubbing.
It was a good chance to clean the little bits of crud out of the tank anyway.
I guess I'll just put it back together now and hope that the float arm stopper was the problem, although I'm not feeling lucky about that!