Hi snap,
I recognize that behaviour (freezing on button push). It has happened to me as well while the software was under development. Now if only I could remember what it was caused by....! I think I traced the problem to the loop waiting for input from the RFM, but it's been a long time since I last had a look at the code. I remember inserting "LED on" commands, recompiling, saving to the MP until I had found the line of code where it should have gone but did not arrive (LED did not go on). It's a crude and ineffective way of debugging. Later I inserted routines in the code that could display a two-digit hex number in the display for debugging, they might still be there somewhere.
Good luck with your bug hunt!
Cheers
Till