With various appendages crossed, I'm ready to call the code bug-free. I haven't tested absolutely everything, but all the big stuff is fixed, and all seems to be working the way I expect it to. Just pushed the "final" commit for this set of features, though I have one more useful thing to implement: hold-and-repeat on the + and - buttons. It shouldn't represent much code or even coding time, but will be a big leap forward in useability.
There's an order from Mouser winging its way my direction, containing the bits and pieces I didn't already have (mostly a suitable LCD, and an enclosure). Once that arrives, I can make the (admittedly very hacky-looking) physical object. There are still a number of questions to answer as to the physical build (mostly whether I want a volume control so I can go from silent to just-audible, and whether I want to have an external contrast adjustment), but it'll be nice to break out the mill and do some LCD and button mounting.
At this rate, I could have a working widget within a month or two. That's pretty cool.