To me and probably many others (albeit often subconsciously), point 3 comes across as blaming, overly-generalized, and lacking in personal (and group) accountability for your experiences.
What about something like,
"Hey John, the last time you did X, Y happened, which had Z consequences.
I felt { disappointed / let down / concerned / irritated / worried / angry / $whatever_emotions_came_up_for_YOU }.
Other team members reported feeling $emotions.
What was going on there for you?
How can I / we help you to avoid X in the future?
Do you have any ideas about what you could focus or work on in order for Y not to happen again?
Here are some specific requests I have for you in order to avoid this kind of thing in the future: $requests "
The edgy part about this for many people is taking ownership for their experience, we live in a society with a lot of deconditioning around this . Nobody else but you is responsible for how you feel. John didn't let you down, you had expectations about what he was going to do, and to your assessment, he didn't meet those expectations (that's also a reasonable thing to say, I think -- I would give more detail and context about specifically how those expectations weren't met). That you felt one way or another about this has nothing to do with John, and there's a lot of subtle and overt problems that can arise in a relationship when we attribute our experience to another person with our language.
I also mention that it sounds overly-generalized because saying "when you do X" has an implicit assumption that he will continue doing X in the future, and isn't really all that specific about why X has certain consequences - I think it's better to use specific situations in the past when X happened and to talk about what came up when that occurred. This is basically what I'm hearing you say in Point 2 :)
edit: fixed variables, wording
You can try and change yourself to make things work, but it's not always the right or even healthy way to approach a problem.
You can try and help your colleagues, you can rely on them less, or you can quit your job. Blaming your colleagues and making them responsible for your feelings means feeling shitty and feeling powerless to feel better.
This is where we disagree. John did let you down. It's OK to blame him. It's OK to be a normal person that reacts to other people's actions and not some kind of zen robot. And recognizing that someone else's behavior causes you to feel shitty doesn't make you powerless to change.
You are responsible for your own emotions. Recognizing that doesn't make you a zen robot. You can still feel. But don't put those feelings on other people and make them responsible for making you feel the way you want to feel.
You can recognize patterns for your emotions, like "I get sad when people make fun of me", but that doesn't mean that you have to be sad when people make fun of you. Recognizing the distinction is what gives power to change.
And sure, there are limits. The feelings that arise when tortured for example are rooted in physiology and near unavoidable. But I suspect that John didn't let you down by waterboarding you.
But indeed can think of things the other person could do better / improve upon. (However, maybe only "criticizing" isn't so nice)
I've heard this referred to as "feedforward" before (as opposed to feedback). Instead of saying "last time you did X, you made a mistake and should instead do Y" you phrase it "next time you do X, make sure to do Y". It's subtle, with the goal of avoiding defensiveness.
Point 1 : "Be Specific". I can not stress this enough. Please point out specific observable behaviour.
Point 2 : Frame feedback in terms of team/organisational goals. Every team has a purpose within the organisation. It's a team game and every team member should know the feedback in context of the team game. Individual feedback, team context.
Point 3 : Cite the past but look for future changes in behaviour. You can not change the past but you can influence the future.
For example, "Hey John! When you do X, it helps the team achieve Y. Please continue doing so!" or "Hey John! When you do Z, it lets the team down. What can you do differently?".