I could have written this. It sums up my work experience exactly.
You recognize your flaws and mistakes, but here's a likely one you're forgetting. We tend to take mistakes VERY seriously. At least for me, I could watch 10 people make major mistakes, and be very understanding. I'd be like, that's ok, it happens. We can work around it. But if I forget a minor detail, I'm going to be beating myself up for the few days, and worry how much longer until I get fired.
Just yesterday I found out that I had opened an email, got distracted and never replied or took action and it caused a problem for another dept. Ruined my night, but I'm going to remember this post and go in to work today and not let that hang over my head.
Best wishes to you!