Every change of state becomes a stack event with a timestamp, both IDs, a status and a reason. The first *_FAILED event's ResourceStatusReason is almost always the real cause; later events are consequences (Stack Events follows them live). The stack itself goes from CREATE_IN_PROGRESS to CREATE_COMPLETE (or ROLLBACK_COMPLETE), each update from UPDATE_IN_PROGRESS to UPDATE_COMPLETE (or UPDATE_ROLLBACK_COMPLETE), and finally to DELETE_COMPLETE.
A deleted stack stays visible as DELETE_COMPLETE for 90 days (list-stacks shows the history), and REVIEW_IN_PROGRESS, the first event of every deploy, is a stack that so far exists only as a change set (Change Sets and Policies).