Hi, Jeff,
I have exactly the same setup as you (like, I mean, exactly).
And I had exactly the same problem as you.
But I did eventually get it to work. Here's what I did that I think actually helped:
Step 0: Note that the watch appears to mirror the iPhone Calendar app exactly; so if you see it on your iPhone, rest assured the model is that you *should* see it on your watch. So, no need to keep trying things that don't conform to that assumption. (In other words, it's not like the watch is using your network to fetch its data directly from some iCloud server; it's really looking at to your iPhone's display settings to determine which accounts and subscriptions (see below) to mirror to the watch.
Step 1: From a web browser, signed into your corp account, go to https://www.google.com/calendar/syncselect. (If you have multiple Chrome profiles, be sure you're in your corp profile, not your personal one, so the link takes you to the right Calendar preferences screen.) This will allow you to choose which calendars show up when you use CalDAV, etc. to "sync" your calendar (e.g. to iOS). Now, uncheck all the calendars you don't need (if you're like me, you will have a ton of subscriptions to fellow employees' calendars because you once looked at them -- these are being synced to your iPhone whether you know it or not!). So I recommend unchecking everything except your primary calendar, so you can be sure they're not being synced -- there seems to be a limit (whether intentional or not) on how much data the watch can handle when it tries to pull from the calendar data on your iPhone, so you want to try to minimize the amount of data it needs (and this seems to be the best way). -- Alternatively, you could just go into the settings in Google Calendar and explicitly unsubscribe from all calendars you don't want to sync anyway.
Step 2: On your iPhone > Apple Watch > Calendar settings, turn off all notifications (this is just for now). You will be able to re-enable them later -- once it actually finally starts syncing.
Step 3: Click the magic button referenced above: iPhone > Apple Watch > General > Reset > Reset Sync Data. I actually don't think this button is wired up to anything. But at this point, superstition is all we have since Apple wants us to think their technology has advanced enough to look like magic.
Step 3: Make sure your iPhone calendar has what you want on it, and make sure your iPhone's bluetooth is turned on, and then reboot your iPhone and your watch simultaneously (just once, to make sure both of them are starting from a known state). This is just the first time, to get it going. The timing isn't super important, but I have found that if I do them both simultaneously, the iPhone comes back first (it's pretty fast), and the watch takes a while longer. In case you don't know how to reboot your watch, it's the same as your iPhone basically: hold down both buttons until you see it turn off; but then don't let go -- keep holding 'til you see the Apple logo. Obviously, "simultaneously" means in quick succession (you don't have to literally try to hold down four buttons at once on two devices :-) ).
Step 4: This is the gross part, that I think is actually what's triggering it to start working: Go to iPhone > Settings > iCloud. On this screen, if your Calendar slider is off (meaning, don't sync iCloud calendars), turn it on. If it was on, then toggle it off, then on. I recommend waiting a few seconds after toggling off, before turning back on again. (But either way, be sure it's on in the end.) I think the bug has to do with Apple's testing team assuming everyone uses iCloud, and not figuring out that something breaks when iCloud calendar sync is not turned on. They probably can't imagine we would ever want to use our iPhones without using their awesome cloud. :-) But even if you had it on, something about toggling it off, then on, seems to trigger it to start working again.
Step 5: Wait a few minutes. If it's still not showing any events on your watch, reboot both simultaneously *again*.
Step 6: Wait a few minutes after rebooting, and if you still don't see anything, turn off bluetooth on your iPhone. This eliminates one possibility: that the iPhone connection to the watch is too flaky for that much data to be copied initially without triggering some bug somewhere. When you go over wifi (assuming you're actually on a stable/strong/good wifi connection on your iPhone, and the watch is able to talk to the iPhone when bluetooth is off) the calendar should sync much faster and without errors. You really don't need bluetooth -- in fact, I strongly recommend Apple rewrite their logic so that bluetooth is only used as a method of last resort if wifi isn't available (not the other way around). Their software seems to let you do *everything* you can do between the watch and the iPhone over wifi, but on initial boot-up, the watch only gets its wifi configuration data from the iPhone over bluetooth. So you must have bluetooth on on your watch whenever you reboot, or you'll get the red disconnected icon on the watch. (To fix that, just turn bluetooth back on, and it will come up quickly; then you can turn it off again.) Of course, that only works when you're on a stable wifi connection (i.e., not walking around or driving, etc.).
Other things to note:
There are fundamental differences in the way Calendar (iCal, CalDAV) model repeating events, and the way Google Calendar does it. So, you'll be plagued with periodic issues relating to repeating events. Try to ignore those; you'll rack your brains trying to solve them (though I have ideas on how Google can fix Calendar's CalDAV implementation, I won't go into it here). For example, repeating events that have exceptions (i.e., where you clicked "this event only" after making a change on a repeating event), simply won't sync the exceptions to the watch. So, again, for now anyway, the goal is just to get you your baseline calendar showing up on the watch. Errors relating to repeating events changing, can be dealt with later.
Since Google so horribly blocked us from using Exchange (literally this happened last week for Googlers), we must live in the CalDAV world, which is also riddled with the unfortunate problem of not having support for "push" of updates to the iPhone. :-( So, in the CalDAV model, you have to "fetch". But for this, there are three latencies to worry about: (1) the latency of polling from the Google CalDAV server to some intermediate system backing your iPhone calendar (maybe this is the iCloud connection/bug?), (2) the latency of your iPhone polling or perhaps getting pushes from the intermediary server to your iPhone calendar, and (3) the latency of your watch polling from your iPhone to update its version.
Some more key points:
* Unfortunately, with "fetch" calendars, no matter what latency you give it in the settings (from "15 minutes" to "manual"), iPhone calendar will not begin fetching from the service (#2 above) if it is sleeping (i.e., locked)!!! This is a very annoying problem. I don't know why they do this, but I've confirmed it many times. Until I actually unlock my iPhone, it will not fetch any calendar updates.
* You don't have to actually launch the iPhone Calendar app, you just have to unlock your iPhone or it won't fetch! It appears the timer does continue when it's locked, fortunately, so you don't have to literally wait 15 minutes after unlocking for it to start syncing. But you may have to wait a few minutes, on average. This is really important to understand because otherwise you will be trying many more combinations!
* If you are so lucky as to have an Exchange calendar (which you can do with your personal or non-google.com account) or an iCloud-hosted calendar, everything just works! In other words, for Exchange calendars, you literally see updates on your watch scant seconds after they're applied on the other end, without doing anything! Whereas with CalDAV calendars, you literally get NOTHING until you do both: wait 15 minutes and unlock your iPhone.
The inherent problem here is that CalDAV is "fetch" not "push", though of course Apple could make it "push" if they made their server layer (#2 above) do more aggressive polling and then push to the iPhone.
Anyway, just wanted to make that clear. If you have your iPhone locked the whole time, and you keep looking at your watch wondering when it's going to update, you will be waiting a long time. :-( Unless you're not using Google Calendar or any other "fetch" mode calendar.
Hope this helps.
Steve