Currently the process should (untested) include interior rings from input polygons in the output if they are entirely included in those polygons, but it ignores the issue of holes that are split among 2 or more subdivided polygons.

For example, in this dataset above the lakes in this dataset would be absent from the output.
Implementation-wise this should be somewhat straightforward to add at the end of processing of each exterior ring. The algorithm tracks which input polygons segments were drawn from in the exterior ring's construction. Any segment with significant coordinates (not exclusively boundary edges) that are part of these polygons but not the exterior ring are parts of interior rings. Once these are gathered it's a matter of matching up direct overlaps and adding them to the output polygon. Unlike exterior rings there should be no special rules around connecting disjointed vertices.
Currently the process should (untested) include interior rings from input polygons in the output if they are entirely included in those polygons, but it ignores the issue of holes that are split among 2 or more subdivided polygons.
For example, in this dataset above the lakes in this dataset would be absent from the output.
Implementation-wise this should be somewhat straightforward to add at the end of processing of each exterior ring. The algorithm tracks which input polygons segments were drawn from in the exterior ring's construction. Any segment with significant coordinates (not exclusively boundary edges) that are part of these polygons but not the exterior ring are parts of interior rings. Once these are gathered it's a matter of matching up direct overlaps and adding them to the output polygon. Unlike exterior rings there should be no special rules around connecting disjointed vertices.