To be fair for the sake of Shadowheart all they have to do is change the triggers so this only happens if you had your one night stand with Halsin instead of declining him. Have her say no to his advances the same way you did if you said no, or easier yet, just have him actually respect your boundaries like he said he would if you decline him and remove the triggers entirely. He did an incredible job otherwise writing her story, there's a reason we are so invested.
That doesn't solve Halsin's overall romance writing compared to what people wanted, but at least it solves this issue.