Lessons learnt:
- if your digital input via a switch with pull-down resistor is displaying hysteresis, you are probably doing something wrong - more likely than not your connections are not solid.
- Protoshield mega is absolutely brilliant for the Arduino Mega.
- Screwing the LCD + keypad shield into the top of the enclosure too firmly is probably also pressing the reset button down. Better back those screws off a smidge, mate.
- Function calls will compile without their parentheses, but not actually do anything.