Another way to look at it, is that simply "good vs evil" is a faulty framework for how life works.
No, Tony isn't evil. Neither is Uncle Junior, or Chris, or Paulie, or Janice, or Johnny Sack, or Phil. Not even Richie. What all of these people are, is severely morally compromised and unwilling to do anything serious to break out of it. That's what "evil" looks like in real life. It's not a supervillain making evil plans, it's a dad putting his family in harm's way to take a bribe, or the guy who hands out bribes in order to screw over an honest competitor. It's being presented with a corpse and chopping it up to save a friend from prison. It's Carm having an AK-47 in the house because she knows.
The closest thing to actual evil we get to see are Tony's parents. I think that's deliberate. Johnny and Livia are the source of his really serious issues, above and beyond his environment. The seed they planted is what makes Tony a little more violent, a little more calculated, a little less remorseful than someone like Chris or Artie. And then it's the Tonys and Phils who rise to the top and set the tone for everyone else, which perpetuates the problem as they spread their trauma to others.
For that reason, I don't think he's really redeemable, and I think that's the point of his "breakup" with Melfi in the final season. It finally clicks for her that he superficially wants to be a better person, the same way someone might superficially want to own their own business even if they're not willing to work for it. What happens when Steve Buscemi's character shows up and really, sincerely wants to change?