After more testing, this is what I learned:
-- If I use my phone, the alarm sets immediately. There is no delay, and no beeping. I can immediately open the front door and it will go into entry mode.
-- If I set the alarm from the panel, and then open the front door, I have about 30 seconds until the beeping stops and then the alarm arms.
-- If I set the alarm from the panel, and then don't open the front door, the alarm stays beeping in exit mode forever. When eventually I open and close the front door, it arms after 30 seconds.
-- Whichever way I set the alarm, the hall sensor does not detect movement when full armed - it seems to be there only for Night mode (to detect when I come down the stairs).
So it does look like it's failing to detect the door opening/closing - but that doesn't explain why it only happens (intermittently) when leaving, and never when returning?