Generally it's best to choose a niche instance so you inherit a community of people with common interests instantly which makes onboarding much easier. For example, I'm on fosstodon.org for free software and photog.social for photography.
https://photog.social/@ambassador/109080532230127913
When you settle on an instance, make sure to contribute to its upkeep if you can.
How feasible is it to have a username at a custom domain? In case the server you sign up on goes out of service. Do you have to set up your own instance in order to do that? Is there a barrier from setting up a new instance and then participating immediately in the wider federated network?
Also every time a user follows you from an instance not federated with your instance it's a whole complicated process because federation has to be established between your instance and their instance (and, I think, every instance that they follow users from).
So if I understand your question correctly: there is no way to separate your identity from your content. If you want to own your identity you will need to self-host.
I am realizing now that the solution to these concerns is likely going to emerge from matrix.org, not Mastodon.
Isn’t this just a normal Mastadon instance but with custom domain support just like email providers?
Another way of doing it is if you're already posting your notes, pictures, etc. on your own website, you can make it ActivityPub aware and use your website instead of Mastodon.
I quite like the sound of this, do you have any references you can suggest?
Seems like it's possible to implement just enough of ActivityPub functionality that Mastodon users will be able to follow you.