Eliminates ~60 errors/sec console pollution on cold dartbrains.org page loads
caused by `requestAnimationFrame` reading widget traits before the first
async Python→JS sync arrived.
All 10 widgets now:
- Read every trait with `model.get(...) ?? <default>` matching the Python
`traitlets.X(default).tag(sync=True)` default.
- Wrap their `animate()` body in a log-once try/catch so future trait
misnames fail loudly once instead of spamming the console.
No API changes. Behavior in normal `marimo edit` (server-backed kernel) is
unchanged because the unsynced window is too short to observe; in Pyodide /
marimo islands the window is ~1 s and the change is visible as a clean
console and sane default readouts on first paint.