I honestly think that we should have major instances federated to everyone and instead of complete defederation, provide users with options to block (basically hide) content from certain instances and users from your feed. It would also be crucial to have a separate tab then for all (unfiltered) content. The thing is, one of the main problems with traditional socials is that it is so easy to create a bubble around you and not see anything outside of it. While it's OK to have personalized feed, it's also important to be able to see everything the way it is - even with marxists, stalinists, fascists and so on. Maybe having some arguments with them here and there would be good too.
The other viable option is to just leave everything as it is, and retreat to viewing only subscribed content when you feel like it
The problem with allowing spaces for fascists to exist online is when they start existing in offline groups too. If discussion was the biggest risk then there would be no harm in letting them participate.