From a practical sense, ActivityPub may be the obvious choice as it gives easier interop with the largest federated platforms.
But what else? There are existing platforms built on these protocols, such as movim for xmpp, and another for matrix I forget.
From a technical standpoint, are there any major pros and cons?
Is it really neglected though? There are dedicated extensions for it, and movim.eu uses it without issues.
XMPP’s real strength is in real-time communication
It’s an extensible communication protocol and has been extended to many use cases, and has a good track record of performing well and handling extensions well. I’d argue this makes it a better candidate than activityPub.
In a parallel universe, we may have had less federation issues had we gone xmpp!