Thought I would close the loop here with a summary of our experience with this migration. So, this was definitely messy. Two companies (two law firms owned by brothers) are sharing the SBS2011 server (getting email off the server is the first step towards getting a new server later this year, before those responses start rolling in). There are two domains, one was the native domain in Exchange and they were popping email into Exchange for the other. 5 employees in the main domain and 2 employees in the 2nd domain.
Because of the small user count and the double domain nonsense, I decided to export PSTs for everyone. I also separately exported contact lists & calendars, since they share calendars between the two companies.
I had control of the DNS for one of the companies, but not the other....had to go through their web vendor and ask them to make the necessary changes. I found out one of the GSuite gotchas because of this. I had setup the two accounts in GSuite, but didn't verify the domain of the one, because it took some time to contact the right person. I guess Google has a 7-day grace period on that, so when I first went to log in to that account after a week's wait, I found that the account had been "recently deleted". Luckily, I didn't have to go through Google undelete process - which can take a week or more. I was able to just recreate it from scratch. Double work including creating the email accounts.
So anyway get the accounts all created, change the DNS and let that cook overnight. Saturday morning, I remote into the individual computers, create new Outlook profiles, import the PSTs to get the mail in. Then, log onto GSuite on each computer, import the contacts and calendars. Next problem. Google apparently has a maximum import size. I couldn't find this limit, but the bigger imports were failing without any message as to why. Just "unable to import, please try again later". Eventually, I figured out the problem and went back and exported the calendar in chunks. Those smaller chunks imported successfully.
I had originally told the client that they couldn't get the google calendar in Outlook, but they asked me to see if there was a way...which of course, there was. You set the permissions then use the helpful ICS link in the Google settings to add an Internet Calendar in the Outlook profile. What do you know this worked. So...I setup the correct sharing, then got the links copied and there you go. It's about time for another gotcha, here. It wasn't until later that I discovered you couldn't edit the calendars this way. Read only. Sigh. So I log back into GSuite on each computer and get the calendars shared there and open as required. That was a big waste of time.
Next, I imported the contacts for each account, then edited their phone system (which converts voicemails to wav files and emails them to users) to point to the new google servers, edit the copier (which can email) to point to the new google servers, test both of those things and call it a day. 8:30pm at this point, so about 10 hours of work for 7 people. Definitely not efficient, but billable, just the same.
I went onsite this morning to setup everyone's phones, answer questions, and make stupid adjustments (can we make Joe's calendar events a darker green?)
I also explain the differences in how Outlook handles IMAP vs. Exchange, re-remind them of the send/receive interval which affects how quickly internal emails get delivered, things like that. 2 hours total. So all-in-all, 12 billable hours for a 7 person migration. My estimates for hosted exchange start at an hour per mailbox, so this job ended up at 1.7 hours per mailbox. Probably would have been 1.5 hours/mailbox if I hadn't tried to get the calendars into Outlook.