Unfortunately I don't see how it could work in our reality.
You have two packages and you fix an interoperability between them for a customer. Neither of the upstream packages wants to accept the patches as they say it is only the other packages fault or are just not interested in interoperability.
What do you do ? If you don't fork it for all your customers you are basically forking for each customer separately. I don't think this is a better way of working.