In order for iCloud to work, you must be signed into that account on all devices that you wish to sync. For example, in your situation, you must be signed into your Google account on all your devices in order for iCloud to push those events to all devices. However, this must be explained more clearly, as that part can be confusing. All Apple devices handle multiple email accounts in a superb fashion, but you must be signed into each account to have it download those events/data onto that device.
Case in point: you sign into both Gmail, as well as Exchange on all your devices, and it will sync events over all devices. It should be noted that Exchange calendars are completely separate from iCloud and MS Exchange handles it's own events. When you have more then one email address in iCal or the Calendar iOS app, you have the option of which account to put it on, and it will sync that accordingly.
Probably the best for you would be to set up Exchange on your personal devices, and, if you don't want to receive mail, simply disable that, leaving the calendars synced. That way, when you create an event at work, it will show up on your other devices under the MS Exchange, but if you create it at home, it will show up as your Gmail (iCloud), unless you chose differently when creating the events.