Account portability is the major reason why we chose to build a separate protocol. We consider portability to be crucial because it protects users from sudden bans, server shutdowns, and policy disagreements. Our solution for portability requires both signed data repositories and DIDs, neither of which are easy to retrofit into ActivityPub. The migration tools for ActivityPub are comparatively limited; they require the original server to provide a redirect and cannot migrate the user's previous data.
Other smaller differences include: a different viewpoint about how schemas should be handled, a preference for domain usernames over AP’s double-@ email usernames, and the goal of having large scale search and discovery (rather than the hashtag style of discovery that ActivityPub favors).
I just know I've been burnt, as have many colleagues, on expanding companies stuff. And then them modifying/eliminating APIs.
It also is a PITA that "Open" is now a buzzword, rather than FLOSS. (For example, I'd call OpenAI anything but open.)
I wrote a comment last week diving more into this: https://news.ycombinator.com/item?id=38660192
Now, what have we learned about building inside somebody else's proprietary castle and moat? How many times are we goung to play this game, without relying on actual open protocols?