Oldest-message age has a blind spot right where the post mentions poison messages. In a standard SQS queue, a message that is received three or more times without being deleted moves to the back, and the metric then reports the age of the next message instead. AWS's metrics page says poison-pill messages are excluded from the age metric until they're processed, and that the reordering happens even with a redrive policy in place.
So the age alarm can look healthy while one message has been failing for an hour. I'd pair it with a retry signal: log ApproximateReceiveCount on every receive so a message cycling through retries shows up before it reaches the dead-letter queue, and alarm on ApproximateNumberOfMessagesVisible in the DLQ itself. FIFO queues behave differently, since they don't reorder: a failed message blocks its message group until it's deleted or expires, so there the question is which group is stuck rather than how old the queue is.