Description
When hetznertreehouse receives a `tap.hetzner.teardown` event but finds no matching Hetzner server (e.g. already manually deleted), it logs `no servers found for org <slug>, skipping` and returns without publishing a `cloud.deleted` event.
This means landregistry never receives the signal to transition the land record from `deleting` to `deleted`, leaving it permanently stuck.
**Expected behavior:** Treehouse should publish `cloud.deleted` even when no server is found, so landregistry can complete the lifecycle.
**Discovered during:** E2E provisioning testbook cleanup — 8 records were stuck in `deleting` after servers had been deleted out-of-band.
Nebula's reasoning: This bug silently breaks the land lifecycle — records get permanently stuck in deleting with no error. It was already discovered affecting 8 records during E2E testing. High priority because it causes data inconsistency that requires manual intervention to fix, and the fix (publishing cloud.deleted even when no server is found) is straightforward.