Another solution is to add an attribute, for example, isNotEmpty, which defaults to false. On your datagrid you can add the constraint [isNotEmpty]. You can set the attribute to true in your save microflow or in the after commit. This way the empty ones will not show up anywhere. (And they can easily and reliable be found in an scheduled event)
A microgolf on rollback of the dataview could delete orphans immediately.
Since the datagridobjects in creating a dataview refer to the empty dataview deleting orphans should not be an issue.