Response time is two timestamps, not a computed status
first_responded_at and resolved_at are written once, when those things happen. Deriving them from the message history would make every SLA figure depend on message metadata staying correct, and an internal note or an automated reply would quietly count as a first response. Two explicit columns mean the moment is recorded deliberately, and a null is an unambiguous not yet.