Replace flat status enum with stateId/stateGroup references: - Import states table; add state_group filter via EXISTS subquery - Add module_id and cycle_id filter params to task list endpoint - Validate stateId on create/update (404 if state not found) - Auto-set completedAt when state group is 'completed', clear otherwise - Zero references to old taskStatusEnum remain