You realize it's possible to play a spawn PC, break up with Astarion before the end of the game and never get compelled by him to stay right?
Obviously it's possible, because he can't compel Tav while the tadpole is still in their head. He never compels this Tav because they literally never stay with him alone in the end if they broke up previously. And if he tried to do it in the presence of other companions, they would have defended Tav and kicked his bottom for it. This perfectly explains why he only forces Tav not to break up with him when they do it in the end, when they are alone with AA.
Confirmed by the epilogues, if you attack AA at the party, everyone joins you against AA.
Actually, thinking about it, I get it now, why he didn't compel Tav not to go with Karlach and Lae'Zel. Because the party would have killed him for controlling and enthralling Tav like that. And of course, he can only compel Tav when they hear his words (confirmed by the epilogue of Spawn Astarion with Cazador still being alive).
All right, I take my words back. This ending with Karlach/Lae'Zel actually makes sense now. It's just that AA lied and gaslighted Tav again.