I have some more data, and a possible workaround until Apple fixes this problem.
Using the utility CPU DasherX, I can watch the clock rate of the CPU in my iPhone 6 change when the battery charge level changes.
When the battery is at 93%, the CPU runs at 1127 MHz, which is pretty close to 1.4 GHz it's rated for.
When the battery drops down to 90% the CPU drops to 839 MHz.
When the battery drops down to 89% the CPU drops to 600 MHz.
When I charge the phone, the CPU speed tracks upward at the same points. Back up to 90% battery, the CPU goes back to 839 MHz. Back up to 93% battery, the CPU goes back to 1127 MHz.
I could pay $80 and replace the battery on my phone. People have reported that fixes the problem. But I don't really want to spend $80, and it's not clear how long the fix will last. Maybe when the new battery starts to age, the problem will come back. I'm also still hopeful that Apple will acknowledge and fix the underlying bug.
My workaround in the meantime is to use an external battery back all the time. If I can keep the built-in battery fully charged, then the phone will keep running at full speed. And when Apple fixes the problem, I'll still have a useful external battery pack. Sure, I'm stuck carrying it around, but they make some pretty slim ones these days, so it might not be that bad.