fix(web): survive async settings hydration and group font dropdowns

Client settings hydrate after mount, which dropped two things on reload: the
terminal font (setFont fired while the surface was still loading, so the
preference never reached the created terminal) and the custom-font input
(customMode initialized from the pre-hydration empty value, leaving the
field hidden behind a "Custom" trigger). The terminal re-applies the current
preference once the surface exists, and the input visibility now derives
from the value itself.

Also groups mixed dropdowns (composer) into labeled Sans serif / Monospace
sections and removes the composer's redundant default entry - the reset
affordance already returns it to following the interface font.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
d423e0034dWout Stiens committed on 7/31/2026, 12:06:41 PMparenta31d2bc
3 files changedLine totals unavailable