One possible option would be to simply retry the libvirt destroy() call a few times when we see the exception with err.code = VIR_ERR_SYSTEM_ERROR and err.int1 == EBUSY
One possible option would be to simply retry the libvirt destroy() call a few times when we see the exception with err.code = VIR_ERR_ SYSTEM_ ERROR and err.int1 == EBUSY