Oh, Lenny....baby, it's okay. This kind of thing happens a lot, I assure you. The cheating part and the almost-sex.
For instance, use my life. My boyfriend, Will, is dead-set on someday having sex with me, but I keep reminding him about how we're both too young (he's 14 - one year younger than me). He's really sweet about it, and I've told him that I'll compromise with him ( I have strict morals in some places, and not so serious ones in this feild. Don't judge me xD). I told him that if we can stay together for three years (and I'm seriously sure we can do that), I'll let him, and it must be special. Remember to save yourself for when you are old enough to face the consequences, Love, because there are waaaaaaay too many of them, trust me xD
Secondly, the cheating thing happens, too. Sometimes it just does. The one you are with isn't the one you love, and that's when you know you should break up. What is the point of being with someone if you don't love them?
Zach seems like a really sweet guy for staying true to your word. Guys don't normally promise that sort of stuff. Though I think going as far as no kissing is a little bit of a let-down.
I'll close with this: don't fall for someone unless they are willing to catch you. secondly, no man is worth crying over, because the one who is won't make you cry. Those are two very useful quotes, and I hope you think about them, Lenny, because I never want anything or anyone to hurt you. ~hugs~