I'm in a relationship with a long-term partner who cheated and lied. I won't pretend it was easy and there's so much to say, but there are a few reasons why I am here still with him right now:
1. He took full responsibility and it stopped.
2. What we have together is really important -- values, interests, shared experiences (no kids, no property)
3. We did couples counseling with a poly counselor who pretty much put him on the spot as we worked through issues. I decided I was done with him and he asked me for one last attempt. Things aren't perfect, I don't fully trust like I used to, but I do believe that he has changed, continues to change, has become a better communicator and better at understanding his motivation and behavior.
But the most important is this:
I was ready to leave him. I was clear. My life could go on without him and could be wonderful and I would survive. In a very real sense, it was an ultimatum, witnessed by the counselor, that he had no space for mistakes anymore. The issues that continued prior to seeing the counselor were not cheating or lying, but were about not keeping agreements to the letter (weaseling around time, etc.). At that point, it was all or nothing and I told him if he really felt he couldn't live up to it, that was fine, but he couldn't be with me anymore.
I will also say that one of the things that swayed me to try is knowing that I've made mistakes myself and that some of us do have the capacity to change. But, again, I set a limit and it was important. Forgiveness is a choice. I have chosen not to forgive my childhood abuser, but in this case I did the "math" (yes, it was that clinical of a thought process) and decided I had more to gain if it could work out.