I agree with Dotathinker, how can 2 and 3 be correct? As the entire transaction is under uncommittable state which is -1.
As per docs from Microsoft please note the below details( https://docs.microsoft.com/en-us/sql/t-sql/functions/xact-state-transact-sql?view=sql-server-ver15)
XACT_STATE() = 1
The current request has an active user transaction. The request can perform any actions, including writing data and committing the transaction.
XACT_STATE() = -1
The current request has an active user transaction, but an error has occurred that has caused the transaction to be classified as an uncommittable transaction. The request cannot commit the transaction or roll back to a savepoint; it can only request a full rollback of the transaction. The request cannot perform any write operations until it rolls back the transaction.