Hi! I'll be glad to be of help with this issue.
I can imagine how frustrating and distressing this situation must be for you. You are clearly a good man in a good relationship--except that it's not good at its core. I'm so sorry you are going through this. It's really difficult and frustrating when your lover says she's forgiven you, but she really hasn't. At this point you have no reason to not believe her when she says that the only reason she doesn't want to have sex is because of what you said.
And this is actually the key to my answer to you that you need to consider and think about. There is a possibility here that she really still has a lingering belief that you don't really care about her. And thus, withholding sex is a way to see if you really do care about her or just want her for the sex. I know that's a bit weird because it's been six months already. But sometimes people can get themselves all twisted up in their thinking like that.
The problem here is that your question is a fair one: how long should you keep waiting. The answer really is that you shouldn't keep waiting. We don't know if the thought pattern I described above is what is going on or if there's some other thought pattern making her behave in this way.
But you've tried from what you describe enough really good ways to establish good faith that it now needs some professional intervention. The two of you need to go to couples counseling and find out what is really going on in her mind and heart. Because that she says she's forgiven you, yet holds this grudge is indicating something is not reconciled for her and she can't make it happen on her own or just between the two of you. So you need to get a professional involved.
I don't know if you're willing to. It sounds as though you love her and care for her. So, I would then recommend taking the step of going to couples therapy. But certainly just waiting longer does not seem as though it will change the dynamics that are going on now.
Okay, I wish you the very best!
My goal is for you to feel like you've gotten Great Service from me and the site. If we need to continue the discussion for that to happen, then please feel free to reply and we'll continue working on this. If the answer has given you the help you need, please remember to give a rating of 5 (Great Service) or 4 (Informative and helpful), or even 3 (Got the job done) button. This will make sure that I am credited for the answer and you are not charged anything more than the deposit you already made by pressing any of these buttons. Bonuses are always appreciated! If I can be of further help with any issue now or in the future, just put "For Dr. Mark" in the front of your new question, and I'll be the one to answer it. All the best, XXXXX XXXXX