Hi! I'll be glad to be of help with this issue.
I can imagine how frustrating this situation must be for you. You are clearly a normal young woman and you are trying to move the relationship forward in normal ways. But he doesn't seem to be reciprocating. He's moving in starts and stops; it's rather jerky, as in unstable. And that's a bit unsettling, I can see. And for good reason. It isn't quite the normal way you'd expect from a guy in his early 30s.
And this is actually the key to my answer to you that you need to consider and think about. He has given you an explanation for his behavior that would explain what you're describing. I don't think you have to go looking for something more strange about him or his mental health at this point. That he hasn't had a lot of relationships for someone his age would be very natural for someone who's shy and awkward. And that's how it's been going: awkwardly. So that makes sense.
That he's looking for Miss Perfect is a bit worrisome, that's true. You would figure that by the time he got to 30 he would have realized that there is no Miss Perfect just like there isn't any Mr. Perfect! Look at your situation: you're making lots of effort to give him the benefit of the doubt; he's certainly not perfect.
So, again, I don't think you need to look for some deeper mental health problem at this point. He's a perfectionist and he is not looking for perfectionism in himself as much as in who he forms a long term relationship with. That's immature, but then he's shy. And he clearly has a lot of good qualities, because you're very attracted to him still, after all this time.
But to make it work given his personality, you're going to have to continue being both patient and upfront and open. You're going to be the one taking the lead in this relationship. So you need to ask questions when you are in doubt and not feel like you should wait for him to bring things up. You've had good success with him asking him directly and that's what you need to keep doing.
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, Dr. Mark