Tumblr already effectively federates inside its own network. Instead of accessing <blog>.tumblr.com, log in at tumblr.com and then visit tumblr.com/<blog>. Each user must have one blog. A user can create more blogs and a blog may have more than one contributor. Only primary blogs can comment, like, etc.
What I would personally do is copy Mastodon's approach.
This is super easy and pain free and doesn't require messing with Hellsite's architecture and potentially ticking off thousands of users while simultaneously playing better with Mastodon, specifically.
How do I accomplish this?
By creating a proxy for each Federated entity the first time it is needed. Tumblr's local API continues to just operate against local entities, tagging the proxy when needed. A separate process batches outbound notifications, grouping by target server. Inbound, I just locate or create the proxy for the given federated entity - then use the existing deliver infrastructure to deliver the notification.
This also gives me a good way to cache content - and allows local trust and safety to do their thing if they need to. It limits all code changes related to this to the edge of my network, limiting the risk.