In the first paragraph, what you are doing is, you are creating levels of expectation for yourself which are causing you your problem. Stop creating expectations you are unable to live up to. That is the problem with that.
Frustration can lead to anger if you do not let it go. Just let the expectations go. Think about something else when your mind wanders to what you consider your failings.
I think it is impulse. Most anger is done without thinking. It is a reaction without control. But in order to get to the root of the cause, you have to have control and use your mind instead of your impulses. IMPULSE is at the root of anger, and using your MIND to control the feelings is what prevents anger from occurring.
Anger is not a bad behavior if it is under control. Anger is a bad behavior when it hurts others. Of course, in a manner of speaking, you are first hurting yourself before you do hurt others, since anger and hate are great ways of killing yourself.
When I am disappointed, I evaluate my expectations and decide that I could not rely on myself or others to meet them and then I just LET IT GO. Give it up man! That is the best thing to do. Just keep on walking in life, keep right on walking.
Blaming other people is childish. Everyone is responsible totally for themselves.
I don't accept frustration, I just change my expectations, to none rather than something.