Your design is "perfect" when nothing can be removed from it. That's a good starting point.
But doing design isn't just about doing design, it's about the challenge of doing the best you can within the timeframe you have and according to the requirements of your client. That's very close to the mindset when you play sport or a game. You play one game, you do your best and then it has to stop; most time the goal is to win, some games are not big wins, and a few times you might just not score any point at all. But the goal is always to do your best according to the rules and the opponents, and these things are variables. You can judge your performances by appreciating what you did in the amount of time you were allowed to put on your project, and get some satisfaction from this. As my art teacher used to tell me, perfection is impossible.
That means nothing will ever be as you wish it because you have to limit yourself to a certain number of hours and not all requirements from the clients are "design friendly." And that's not specific to design actually, authors suffer from the same problem... it's not easy to let go and say "ok, it's good enough now." So maybe a trick is to start to tell yourself "ok, it's good enough for a 10hr project @ $xxxxx!"
The thing that helps is to change your mindset and consider you are doing some kind of contest. There's no big failure when creating unless you quit because of criticisms or you don't get paid; that should already take away some pressure to succeed. Find ways to organize your thoughts to be efficient so when you'll start designing, you already have an idea in mind of what you want to do and it will be fun too. And see the whole process for the challenge it is, not as a representation of who/what you are.
My process for designing starts by gathering inspiration by looking what has been done and what feel I want, then I choose my fonts, then my colors, gather all the images and logos, then I start my layouts with that "pizza". Along the way, the inspiration grows and it's easier to create. I take some breaks and do other stuff in between to let the ideas sink in, and when I get back to work I feel I already have a good idea where I'm going or what's the next step. Maybe you're having OCD issues because you force yourself to create something genius instead of connecting with your ideas and letting them come to you. When you feel you're just going around in circle, go take a shower or a walk or pet your dog or something! RESET! I don't believe in muse, I believe inspiration and ideas are all around, and when you're in a good mindset you're more attentive and observant, and all you need to do is grab ideas on the way. It's effortless.
I also prepare a few proofs and drop them as PDF in a folder without overthinking it, and then I sort them all at the end to keep the ones I prefer and improve them. The goal isn't to do something perfect the first time, it's to explore some possibilities and play around with different ideas. When I get stuck on one, I simply jump on another one and come back to the first one later. Often, the first tests are more "crappy/cheap" with good base and the last ones are better. When I look at all of them together after my "first rounds", that process helps me to eliminate the bad stuff and mix-n-match all my ideas together... and keep only what I consider the best. It also helps me to take a few steps back to look at all the proofs together, and then it's easier to see what's missing or what could be better. Sometimes it takes a few rounds but I'm content when I send my proofs to my clients. I can also count on my clients' feedback; what I love isn't always what they love... And that's part of the challenge.
You can put more time than the budget allows it on some projects but you need to gain from this and it needs to be fun. That means if it makes you practice your skills or create things you never have the opportunity to create, then it's great. But if you're having anxiety issues because of this, then take a break, do something to clear your mind and then come back on your work. This way, instead of moving things around and doing endless changes, you'll be more efficient and you'll have a pretty good idea of what you want to achieve. It helps a lot to take breaks and reset, and come back to look at your files later; you'll see your layouts with a new view.
Or simply send your drafts to the client and wait for feedback... Even if your clients give you negative feedback, it's not about you. It's just pixels in the end. You'll have the opportunity to improve your designs and as you mentioned, it's not always clear what the client wants. Sometimes they don't really know themselves; your drafts will give them some visual clues and your next proofs will be built on all this. So even bad proofs are not useless if they help you prepare the next round of proofs or helps your client give you more precise requirements/instructions.
A lot of designers feel "suck in" by their designs and can't step back; their designs and creations become "them" and it's harder to be rational about the project's scope in these moments because... don't we all want to be/look perfect? -coughs- ;)
That's why I think it's your mindset you need to work on first.