might be related to systemd integration (destroy unmounts then attempts to destroy but systemd might mount the fs again or has an invisible automount point there, even though the fs does not appear mounted)
rule out hypothesis by creating dataset, rebooting, attempting to destroy, and if it fails, attempt to tellll systemd to let go of his idea of the dataset, and try again.
destroy works if the dataset is set to legacy or none and the system is rebooted and then the dataset is destroyed (did not test setting to legacy and then deleting right away)
might be related to systemd integration (destroy unmounts then attempts to destroy but systemd might mount the fs again or has an invisible automount point there, even though the fs does not appear mounted)
rule out hypothesis by creating dataset, rebooting, attempting to destroy, and if it fails, attempt to tellll systemd to let go of his idea of the dataset, and try again.
destroy works if the dataset is set to legacy or none and the system is rebooted and then the dataset is destroyed (did not test setting to legacy and then deleting right away)