I was really upset when Cas said to Dean that he should’t be there at the Asylum because of everything he had done. When he started to walk away was worse, it was like he was giving up or trying to run from his problems. But then I realised. He is an Angel, he doesn’t need to run from his problems. He could just “poof” away, so why didn’t he?
He will always want to help. If he hadn’t wanted to stay and fix the problem he would have been gone in typical Cas fashion but he stayed and he sacrificed himself to fix Sam. I love the character development that Cas has gone through from Season 4 to present. His understanding of humans, his friendship and love for Sam and Dean, his guilt over what he did but mainly his human morality that seemed absent from Season 4 Cas, he took responsibility and wanted to fix what he started. That is why Castiel is my favourite character.