I prefer to have all characters nearby involved in conversation. Pet pal is a specific example of when the current system sucks. It works in the reverse - people who attack characters on sight will attack you if one of them is present, even if they wouldn't attack the other three. So if there was a scenario where an NPC would only talk to one character - they should talk to that character.

I think the main problem is having the origin stories available as single player party members with POV. They are companions. You should NOT be able to experience their narrative stories.

Players should have a player 'tag' and those with player tags should be able to intercept conversations. This will work equally well in SP and MP.
Companions should have a 'companion' tag so that if they are in the vicinity of a conversation, those currently in the steering wheel will have a options 6 or 7 companion dialog option, highlighted a different color etc.

The hard part is how does a - player interception- work. Well, just like the ear does - except now when another player presses the ear button - they now go into the shared conversation mechanism that was present in D:OS during co-op. Where they both have the option to respond to questions, but where the initiator chooses direction in purely exposition conversations.
And conflicting responses can be handled the same way they used to be.

For example:
1-SP party runs into somewhat annoying imp who delivers important plot points. The Main Char. is addressed, guides the exposition of plot points and concludes a boring conversation
2-SP party runs into a enemy/ally mob - Who recognizes the red prince and threatens the party. Your main character has the chance to talk him down and if picked - the red prince interjects and now you have to talk both down. You succeed - and get a red prince specific companion dialog or a Sebille specific closing dialog you can choose which may alter the direction. but you can pick to let them talk.

1-MP party runs into somewhat annoying imp who delivers important plot points. The Player 1 is addressed, guides the exposition of plot points and concludes a boring conversation.
2-MP party runs into a enemy/ally mob - Who recognizes the red prince (player 2) and threatens the party. Player 1 has the chance to talk him down and if picked - (Player 2) has the choice to interject and now P1 has to talk both down. P1 succeeds and guides the next few moments of exposition. At closing, Player 2 (if still nearby) can choose to say 1-2 things which may result in final enemy/ally disposition of mob.
2.1-MP party runs into a enemy/ally mob - Who recognizes the red prince companion and threatens the party. Player 1 has the chance to talk him down and if picked - (Player 2) has the choice to interject and now P1 has to talk both down and the Red Prince. P1 succeeds and guides the next few moments of exposition. At closing, Player 2 (if still nearby) can choose to say 1-2 things which may result in final enemy/ally disposition of mob.
2.2-MP party runs into a enemy/ally mob - the red prince is not in the party. Player 1 has the chance to get information. If player 2 joins conversation and has a tag / or reason to dislike mob. P2 can refuse to help NPC. P1 and P2 have argument. Player 2 wins, and party fights mob. P1 can remark on lost infor / waste of life or just say, good fight after resolution.

They have more writers... Maybe this is doable.

Essentially - they need a way to share salient conversation points from companions in both SP and MP. They need to find a way to have important conversation tags like pet pal or the red prince still be available when another character is talking. They need to implement a way for co-op characters to have discussions with NPC's because I haven't run into any of those situations yet with my co-op play through and it's really disconnecting. I miss arguing about whether or not to toss the clam into the ocean or eat it.