The row lock from LockingStrengthUpdate only holds for the duration of
the surrounding transaction, so the settings read, the cluster
immutability check, and the save now share one via ExecuteInTransaction
— concurrent PUTs could otherwise interleave between them.
bootstrapSettingsIfNeeded takes the store to operate on so the
settings-PUT bootstrap participates in that transaction.
The bootstrap e2e now sets every toggle away from its default so each
assertion can fail, covers a post-bootstrap update without the cluster,
and verifies a rejected cluster change leaves the row untouched.