Playwright's webServer (http-server) wasn't exiting after the e2e
step, holding stdout open and hanging Gitea's Complete job step
indefinitely (observed run #13 stuck past 6 minutes with no progress).
Add an explicit cleanup step plus a job-level timeout as a backstop.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The VPS can't carry the full 4-project chromium+webkit matrix even
with swap and workers=1 (56min run, 67 timeouts from disk thrashing).
Full e2e coverage stays on GitHub-hosted runners; this is a fast,
best-effort smoke check for Gitea until GitHub Actions minutes reset.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>