I feel like youre just trying to rationalize why it is this way, when its obvious there is a lack of writing to support different situations and relationship status. LIke i pointed out earlier, she acts and says exactly the same regardless of if you romance her or have extremely high approval in the Nightsong encounter. Letting Shadowheart decide Nightsong's fate isn't the moral thing to do, she's an innocent victim and her life is not for Shadowheart to decide no matter how much you like her. You can predict what she'll do only from meta perspective of what writers are likely to do. But she still looked and talked like she will do it and do as lady shar asks, as she does the entire way through gauntlet. If your character is good and stands for justice then they will speak up and be firm that Nightsong can't be killed, its not moral to play with her life for the sake of character development moment. And besides, if she can turn on you just for standing for justice even if you have max approval and romance her, then how capable is she in making the right decision really? The writing there is just insufficient to support how she reacts and her fighting in you in various contexts.
There are some situations in other RPGs where a companion can turn on you, like Leliana in DAO for defiling sacred Ashes and it truly makes sense because that's evil. Shadowheart's reaction is not as consistent or predictable and killing Shadowheart there will be the right thing and morally justified in most cases with how they wrote it.