Freediverx01, that point about the calendar on the watch being an exact mirror of the iPhone was my "step 0" in the post I made on this thread, May 16th. I also pointed out the same other things -- i.e., that the updates don't get fetched from "fetch" sources unless you physically unlock your iPhone *and* open the Calendar app on the iPhone. Which is *ridiculous*, but still, that's how it works. (Note: "push" sources update instantly end-to-end. Which further makes the whole thing very confusing and frustrating, and is likely why many people think iCloud works better -- it does.
But Exchange works just as well, because iPhone calendar (and Watch calendar) can be done via "push" (so changes are reflected almost instantly end to end).
To test that, I set up my domain's Google Calendar as an Exchange calendar, set it to "push" on the iOS Calendar settings, and it works great -- instantly. But since Google disabled this feature just last week for its own employees, nobody who works at Google can use that awesome feature. :-( I may want to steal Jeff's syncer hack, but that's for another thread not on this forum. :-)
But yes, once you've eliminated the likely source of the sync crashing (i.e., out of memory due to too much stuff), you definitely must completely purge the iPhone state so it will correct resync.
Note that you can't just hide then re-show the calendar on iPhone. It only proves the connection is working between the two; but doesn't resolve any corruption in the data that was caused by an out-of-memory crash (which is unlogged, and for which users aren't notified -- hence my, "do not look directly at it" post above).
You need to actually delete the calendar from the iPhone (which as you say, is entirely safe since everything's in the cloud, in one form or the other).
To delete the calendar, I have had less success disabling/re-enabling "Calendar" in the iPhone account settings for the service (e.g. Google calendar as a source in the Mail, Contacts, Calendars settings) as opposed to the better way of simply deleting the entire account from there, and re-adding it -- but first rebooting everything, making sure it's clear, and then re-adding and waiting for it to re-sync first on the phone, then hopefully on the watch. But if the same out of memory error happens again, you'll be right back where you were.
And note: repeating events simply do not work correctly so don't waste your time worrying about them -- when troubleshooting, be sure you're working with single-instance events.
Steve