This is my attempt at backporting PR17004, before running into issues with tests crashing.
It includes the first 3 commits (with significant changes to ABC specific files)
Commits:
https://github.com/bitcoin/bitcoin/pull/17004/commits/a1a07cfe99fc8cee30ba5976dc36b47b1f6532ab
https://github.com/bitcoin/bitcoin/pull/17004/commits/0053e16714323c1694c834fdca74f064a1a33529
https://github.com/bitcoin/bitcoin/pull/17004/commits/e9d5a59e34ff2d538d8f5315efd9908bf24d0fdc