Focuses the first invalid leaf field's bound control after form submission.
Uses errorSummary() from the root FieldState to find all descendant errors,
then iterates to find the first one with a bound UI control and calls
focusBoundControl() on it. Skips group-level validators that have no
bound control (where focusBoundControl() would be a no-op).
Call after submit() fails or after manually touching all fields.