feat(platform-service): resolve P2 TODOs — exports, broadcasts, telemetry, waitlist
- telemetry/repository: group upsertEventsBatch by pk — same-partition
writes sequential, different partitions parallel (reduces contention)
- exports/routes: wire async export processing via process.nextTick —
queries users/audit/telemetry/usage/subscriptions/licenses, serializes
to CSV or JSON, updates job status with rowCount and fileSizeBytes
- broadcasts/repository: replace mock estimateTargetReach with real user
count query from auth module, respects percentageRollout
- broadcasts/routes: wire async broadcast delivery — fetches target users,
dispatches email per recipient, updates metrics on completion
- waitlist/routes: auto-generate invitation codes via invitations module
when batch-inviting waitlist entries (WL-XXXXXXXX format, 14-day trial)
- CAPTCHA (item 12) deferred — requires external API keys
- Update WORKSPACE_TODO_AUDIT.md — P2 section: 5/6 resolved
- Typecheck clean, 1483/1483 tests pass