Solas killing Best Elf while shocking, can be understandable (from a logical point of view). Solas wants to restore the world, Solas employs agents, but he doesn't employ them as Solas but as Fen'Harel. Fen'Harel is ruthless, he must be, he probably had to make hundred of difficult decisions when he brought on the elven rebellion in the days of the Elvhen Empire. In a banter with Blackwall he says "the healer has the bloodiest hands", that is valid for himself as well, especially since the goal he has set to himself is to "fix" the current state.
Solas is saddened by the fact he had to finish off Felassan, that much is evident from what Cole says, I think they put those lines there to strengthen the notion that Fen'Harel is a title, a mask, he is not Solas, but when Solas wears that mask he needs to be ruthless and as cold and calculating as he could.
Imagine you were in his (toe-less) shoes, you send an agent to gain access to the eluvians, he fails you, moreover, he betrays you, giving the eluvians to some fake-elven girl. Said agent then tries to explain his betrayal, but it's not a small betrayal, for all you care that sympathy he has for someone you barely see as a person sets your plan a couple of years back (and it did, it took him 2-3 years to get the eluvians back from Briala). You could let him go, but you are a leader with a purpose, you can't, what if he spreads his ideas to other agents? What if decides to work against you once you disagree with him about the nature of these people?
It's not a simple decision, maybe that agent is someone you would even consider a friend, but you can't just let him go.