You’ve set cluster.evacuate to migrate which tells LXD to migrate the instance even if it believes it will fail.
Leaving it to the default value of auto would have had LXD determine that the instance is dependent on a local volume and instead performed a stop rather than migrate.
It’s not currently possible and is made tricky by the fact that storage volumes can be shared with several instances, making such evacuation problematic/impossible in some situations.