Go through all the patches here and decide what to do with them. It would be really nice to put notes from our investigation inside the diff header for each file.
There is a fourth alternative that we can fall back on if there is no other sane way forward for a patch, and it really does need to be special-cased in Civi core. We can add a hook at the point we need to do stuff, and call out to code kept in an extension or drupal module.
Decide which features should have automated tests.