When first encountering these ecosystems and looking at the various pieces they contain, one may repeatedly ask: "why didn't they just use for this problem instead of writing this component/subsystem from scratch"? The answer is often that the battle-hardened mature off-the-shelf solution did not exist at the time the code was written. You're doing software archaeology.
In my experience it’s extremely difficult for a highly resourced corporate engineering team to get married to an open source project run by volunteers, consensus, or both. It is possible but you need to have a first class relationship with an upstream who will take your patches. Every patch delay puts more pressure on you and your team to fork the codebase and go it alone . You and your team sit down and promise you’…
I've rolled with the "we'll keep a local patch against upstream" for small changes before, which helps keep on track with upgrades, but depends how feasible that is.