Life is too short to wait around for someone who isn't serious about you, to decide what role they want to play in your life. There are so many blessings that we miss by holding on to things that don't make us happy. That person you refuse to leave, is what stands in the way of someone who deserves you. You life is not a bus stop for people who don't know where they're headed.
One of the things love is about is willingness and you can't change someone into who they don't want to be or already see in themselves. You keep expecting happiness from people who don't have the capacity or intention to make you happy, to the point where you try so hard to please them in order to make yourself happy. So what's the point of holding on? Wake up realize that your happiness is more important than trying to convince people of what you deserve.
Stop playing games with your heart. Unless you're a miracle-worker, you can't make anything good out of a bad relationship. You've been giving away too many chances to people who don't deserve them, how about you give yourself a chance to be loved by someone you won't constantly waste your time trying to prove yourself to?