From their website:
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).
https://atproto.com/guides/faq#why-not-use-activitypub
Sounds fair to me, although I am also not using either Mastodon or Bluesky.
Do you already known about https://doc.qt.io/qt-6/qtbluetooth-index.html? That should give you cross-platform Bluetooth access with a single API.