Retryable provisioners re-run non-idempotent steps without deduplication
Background Vagrant's retryable option for provisioners (since 2.2) re-executes a provisioner on failure, but the framework does not wrap the run in a transaction or provide an on_retry hook. This means any provisioner that writes files, modifies databases, or calls external APIs can perform the same mutations twice when a transient error triggers a retry. Co