Now having followed the story most players would, I think, have opted to off him.
If you offer a choice here and don't offer the same choice at non-important events, the fact that you offered a choice would make it look suspicious and the player would think twice about whether or not to kill the character. In other words the player's choice will partially be based on the fact that the designer offered a choice in the first place, thus the choice option would break the immersion and the player won't be emotionally attached to the choice. If you want to elicit emotional response from the player, allow him to make the choice based on how he interacts with the game world, rather than simply making him choose A or B in a dialogue. Let's take the example with Ezio. You hunt the traitor down and once you have, you're offered to choose whether to spare his life or kill him. If you decide to not kill the traitor, why would you be hunting him down in the first place? It's not something you would be doing, if you had doubts about this traitor being a traitor. So, as a designer, what you should really do is make it so that successfully pursuing the traitor or not was the actual choice you as a player make. If the player has doubts - he might abandon pursuit, if he doesn't he can kill the NPC. However, this gameplay addition implies that failing a mission might be Ok, and thus leads us to a mission-less system of an open world - I'm not sure if it's possible to implement this kind of gameplay.