Yesterday evening, I brought all my electronics over to a hardware lab on campus to get everything soldered. Before I went to work, I tested it one last time on the breadboard. Unfortunately, it didn't run my code (the TX light on the ESP wasn't blinking). I had been testing it with the FTDI connected, and as soon as it wasn't, it didn't work anymore. Even when the FTDI was plugged in, the problem sometimes occurred in streaks.
Four hours of debugging later, with the help of an electrical engineering friend, we determined that adding pullup resistors to TX and RX makes it work most of the time. The rest of the time, it fails and produces lots of noise on GPIO2 between 3.3V and 5V at 26 MHz. I have a theory that this is because I'm using a 5V FTDI with the 3.3V ESP, so I'll try my hand at building a 5V to 3.3V level shifter after my exam and see if that fixes it.