In some cases, we want to insert a proxy ancestor and actually treat it as a sample. There is a relatively easy way to do this: during match_ancestors each "real" ancestor gets assigned to an individual in the ancestors tree sequence. Then when we match_samples, any nodes that have an associated individual are not simplified away, but marked as samples instead.
There are some intricacies, such as how to map the proxy ancestors to samples during match_ancestors, and how to fill out e.g. singleton mutations in these historical samples, but I think the general idea is sound.