Hey Guys,
I just found out what the issue was caused by in my case.
It was a strange story, because I noticed that cannot sync all my contacts with my Parrot MKi9200 in my car.
Then I checked on my iPhone, how many contacts do I have at all. I don't know what the limit of the Parrot is, but I'm sure I was way behind it. There were more than 24000 contacts in my iCloud account. On my MBP Messages and FaceTime was starting also slow, they were bouncing 10-12 times before start, while normally they do it like 1-2-3 times.
This was the result of dragging and dropping contacts from Outlook-»Contacts to Finder (exporting my Office 365 contacts) and then importing them into iCloud.
So what I did was that I removed all my contacts from iCloud. I exported my O365 contacts from within the Contacts app on the MBP. Then I imported them into Contacts, while I disabled the contact sync with the O365 account.
Now all is quiet, because soagent and callservicesd do not throttling the CPU at all. They consume 0 CPU time, while Messages and FaceTime are running.
With O365 contacts sync enabled these two start much slower, but they still bounce 6-7 times, which is acceptable.
I have not been able to check, if my Parrot is ok, but tomorrow I'll let you know.
One thing is for sure: if someone had more than a few thousand contacts, that will throttle the CPU with several services, like the ones mentioned. Apple needs to fix that. I don't know, where the other thing is rooted, but it looks like O365 accounts can only be relatively slowly accessed by the Contacts, Messages, FaceTime apps on the Mac. This results in relatively slow startup of these.
I hope this helps!
István