Following up so nobody makes the same mistake.
I let it ride. Took another sample after 7 days with no change. Moved it out of the 65F fermentation chamber into my 70F office for the last 8 days. Been busy, so it was easy to forget about. Just took a measurement again, and got the same exact gravity. Turns out, it has been fully attenuated since the first measurement (day 6). Here's where I went wrong.
I read the OG off the refractometer in SG on brew day and recorded as 1.052 SG. Since then, I switched to making all measurements in Brix for consistency and since my favored ABV calculator prefers Brix before and Brix after, it would remove one conversion step for me.
Two errors I introduced.
1. I used an inaccurate calculator in the OP (MoreBeer spreadsheet) that did not compensate for an wort correction factor. This one is better.
2. If you have the dual-scale Brix/SG refractometer from eBay, you can't trust the SG scale! My refractometer tops out at 31 Brix, which should equal 1.1283 SG. Looking into my refractometer, it shows 31 Brix is equal to 1.1200 SG, which is incorrect. That's a big difference! They used an overly-simplified conversion using the "4-to-1 ratio" conversion trick here. Sloppy manufacturing.
Sighting the 1.052 SG I measured as the OG, that comes out to 13.2 Brix. Running it back through the better calculator linked above, that brings me to 1.0517 OG and 1.0133 FG. That's an attenuation of 74.3%, right on track for the WY 1214 spec of 73-77% (4.9% ABV).
Will keg and force carb tonight if I can find the time. Not crazy about the taste when warm. :\