Two coupled issues in workspace settings:
1. The credentials-loading effect re-ran whenever ws.webdav_url changed,
so any config mutation (e.g. changing sync interval) would trigger a
re-load of the stored username/password, overwriting whatever the
user was typing into those fields. Gate with a one-shot credsLoaded
flag.
2. Save would persist whatever was in the URL input even if the user
had never tested it — a typo'd host silently pointed the workspace
at a dead server. Now saveWebdav auto-runs the connection test and
bails if it fails; any edit to the three inputs clears the "ok"
status via markDirty() so the next Save is forced to re-verify.
Also replaces the ASCII "Failed -- Retry" with an em dash.