This fundamentally requires two things:
Patch 1 prepares for easy backporting of patches 2-4 to the 1.20 branch. Patch 5 cannot be backported.
/cc @ajax @ofourdan