
18 hours later...
Well, after burning though 18 hours on the LCD (over the course of 2 days), I've finally got it up and running. Today was actually a public holiday (Veteran's Day) so I wasn't wasting time going to useless classes like philosophy. The result? A 9.5hour straight burn on the LCD Finite State Machine.
The reason it took this long was because I threw out everything I did yesterday because it was imperfect and sloppy. I basically spent the last night coming up with a completely different approach to the problem that basically uses one super-machine to process everything at once.
The final design is amazingly beautiful -- only 130 lines of code in Verilog HDL are used to describe a fairly complex number of interactions. This is why I like to refer to programming as an art. Getting code to work is one thing, synthesizing a beautifully short and efficient implementation is something totally different.
To give you a rough idea of how complex the state machine was, I used about 10 pieces of 8.5x11" paper to draw out the entire state diagram of the machine. But alas, this part is now down and I'm going to get working on the magnetic card reader this weekend.
This was when I realized I was on the wrong track, and ought to throw everything out and start over:

Fail. Do not want.
This is how it ought to be done:

Win.
I can has cheezburger nao?Perfectionism is a prerequisite for success in hardware design.