After a routine system update from Fairphone Open 16.08.0 to Fairphone Open 16.10.0 (Fairphone's customized version of Lollipop 5.1, rooted edition), my Fairphone 2 did not reboot. After rebooting, it got stuck in a loop: the initial splash screen, then “optimizing app 1/106” through 106/106, then “LOADING” flashing for a while, then repeat. A hard reset (yank out the battery and back in) did not help.
How can I recover? There is TWRP on that phone, but it doesn't offer any option to restore the previous version that I can find.