begin() stamps the last input when it starts building the UI. A boot that
takes longer than the screen timeout (30 s by default; a full chat history on
internal flash with no SD card can do it) timed out on the first loop pass,
with the boot splash still covering the screen. On the T-Deck Pro and Max the
timeout is a lock, and the lock paints its frame and powers the e-paper down:
the splash sits on lv_layer_sys above the lock view, so the frame it kept was
the logo, and nothing redrew the panel afterwards. The device ran on (ui ready,
splash done) while the glass stayed on the logo, on every boot.
The idle clock now stands still while the splash is up (ScreenIdleClock.h,
host-tested), so the timeout counts from when the UI is shown. And the Pro's
lock takes the splash down before it paints, so a lock during the boot (the
BOOT button) shows the lock view, not the logo.
Reproduced in the host build with a 31 s begin(): before, the timeout fired on
the first pass with the splash up; after, 30 s after "splash done".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>