I'm not talking about characters leaving because you're pushing them away - I'm talking about them making their own choices because you haven't given them any reason to be there. There's nothing special about your character in this game. Sure, you want to deal with the tadpole, but there are a whole bunch of people in the same situation - the game gives us very little explanation for why they don't form their own group and leave you sitting on your hands.
In Torment: Tides of Numenera, when any recruitable characters aren't actively in your party, they go do things that make sense in their lives. They go home or they go to work or they go hang out at the docks and look for a ship to travel on. They have lives outside of just following you around, and they live them. And if you change your mind and want them to come with you again, you can go find them and try to recruit them. And when they are following you around, they have a reason to follow you specifically.
In BG3, there are a bunch of characters in a similar situation, but none of them has any reason to follow you rather than, say Lae'zel, Shadowheart, or Astarion. The idea of them sitting around like puppies, waiting for you to come home is ridiculous. They don't feel like characters trying to live their lives; they feel like mercenaries that you've hired to guard your camp. Except mercenaries get paid, so they actually have a reason to be there.
The issue of the camp is separate, but not unrelated. There's no story reason for it to exist, but plenty of reasons for it not to.