- Change your hotspot device name if it looks strange as a wifi SSID. eg use "John iPhone" instead of "John's iPhone"
- Got to Settings > FaceTime and scroll down to the bottom.
- Turn Use Cellular Data to off for FaceTime
- Turn your phone off. (I think this might be important).
- Turn the phone back on.
- Go to Settings > General > Cellular > Personal Hotspot and switch it on.
- Try to connect to hotspot again over Wifi
- (Not tested) It should be OK to turn Cellular data back on for FaceTime, if you really need to.
- Repeat steps above if problem returns.
So I think some kind of clash with FaceTime was the problem. It might explain how I was able to connect through my iPad (but not my iPhone). I had never used my iPad for FaceTime.
My iPhone is 4s, running IOS 6.1.3, although this issue has been around for a few IOS versions.
Hope it helps someone.