In a data deploy, allow filtering data by previously deployed parent objects.
For example, instead of "Only deploy Opportunity records that are children of the Account.Opportunities records that are being deployed" which filters opportunities by the accounts in the same deploy. You would have two deploys. The first would deploy accounts. The second would filter opportunities by those accounts already in the target org.
This would allow you to modularize deploys. You might want to mix and match subsets of data for specific projects. It would allow working around some of the shortcomings of the account hierarchy gearset magic. If there were transient errors (like exclusive locks) you could repeat a smaller deploy, rather than the whole monolithic deploy.