I honestly never had such issues with Shadowheart. On the couple runs where I wanted to have some rest from her and when I was doing duo run Durge/Gale, it seemed pretty easy to decline her. Harder than others of course.

Halsin however. I feel like Larian actively force me to dislike him. Dropping a companion and having them back on the next run makes things fresh and more enjoyable. I was happy to see everyone back after the duo run. But Halsin is just always there. Suffocating. I solved it for myself by casting Friends cantrip on him 10 times, and feeling like a bad person afterwards, but at least he left without violence. It shouldn’t be like this.