The issue is that the perception of the situation that the officer has is what matters. If he says that he perceived that the victim was reaching for a gun, that he perceived his life was in imminent danger, the prosecution has to prove not that his perception was incorrect, but rather that he could not have reasonably had that perception. So even if you had video evidence that he did not have a gun in his hand, you'd have to ask if it was possible for the officer to think he had a gun. This is why it's very difficult to prosecute an officer, and probably it should be difficult given the uniqueness of their circumstances.
So, is it reasonable that the officer truly felt that Castille was reaching for a gun, is it reasonable that the officer felt his life was in danger? The jury felt so.
Is it also reasonable that he panicked? Is it reasonable that he was incompetent and acted irresponsibly? Is it reasonable that his perception is affected by poor judgement? The state felt so, as they will not keep him on as an officer.
To me these are not mutually exclusive. He could have reasonably felt he was in danger while also panicking and practicing poor judgement. Whether that makes him guilty of manslaughter or not, again the jury didn't feel it did - but they did have to deliberate for several days.
Culturally, the question here is why did he panic? Why did he instantly assume Castille was reaching for a gun? On its face it seems somewhat ridiculous to think that someone who wants to shoot a cop would tell him he had a gun on him. So is it possible that Castille's race played a role in the officer's perception and in his actions? I'd say that's very possible and perhaps likely. That doesn't mean he's racist, it means he's human and like all people has built in biases.