feat(subscriptions): thread maintenance updates in Slack like status reports master
Maintenance now has a timeline of updates, so each notified update posted a fresh root message in the subscriber's channel. Route maintenance through the same threaded delivery as status reports: the announcement opens the root, later updates backfill the first message, reply in thread and re-render the root. - Namespace anchor and delivery keys by event kind so a report and a maintenance sharing an id keep separate threads. Report keys are unchanged. - Send the first update's id on the announcement dispatch; it anchors the thread and gives the email idempotency key its per-update form. - Pin the root's "Scheduled" line to the maintenance start so a re-render does not pick up the update's timestamp.