After a long battle trying to find a short on the 3.3V rail, it lives! ~40Mb/s in both directions to the nearby AP, and ~1.5Mb/s up / ~15Mb/s down to the weak AP across the house. That's way better than I expected for my first attempt at RF layout.
I ran into only one flaw in the PCB, and it's one of the classic blunders. I mistakenly routed the tab on the linear regulator to ground. The schematic symbol doesn't define the tab as a separate pin, but the symbol does. This let me get away with routing the tab to ground without angering the DRC. Tab on the AP1117 is Vout, by the way. My mistake cost me a couple of hours where I reflowed the ESP8266 a couple of times thinking the short was underneath.
I decided to use my butane hot air pencil instead of getting out the oven. I'd done this with smaller boards successfully, but this time I had a hard time getting the solder to melt, especially grounded pads and the QFN. The problem seemed to be the bathroom tile I'd been using for a work surface. My theory was that the tile was pulling too much heat from the back of the board, and to stop that loss I put a couple of layers of Kapton tape between the tile and the board as an insulator. This helped greatly, though the unregulated hot air was still tricky to work with.