During a scale test of task status updates, the database goes to 100% CPU and things break <img width="1898" height="464" alt="Image" src="https://github.com/user-attachments/assets/e50a24ce-59d6-432d-919c-1489cfc2cc20" /> The two queries in the title are the most expensive: <img width="3381" height="516" alt="Image" src="https://github.com/user-attachments/assets/390bbf81-b23d-4977-8bd3-4cc045bb16c2" /> They cause sequential scans because we don't have an index on `(app_id, created_at)`.