Keep the presence worker alive through pipe errors

The package's pipe reads and closes can throw outside the service's own
catch, for example when Discord quits mid-session. On the UI isolate those
reached main()'s guarded zone; on the worker an uncaught error would end
the isolate and presence with it, and dispose() would wait forever. The
worker now runs in a zone that logs them, dispose() gives up after two
seconds, and clear() no longer starts a worker that was never needed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
5145588422Dara Adedeji committed on 10/5/2026, 1:38:06 PMparentc2b2d8e
1 file changedLine totals unavailable