PostgreSQL concurrency control and Serializable transactions
You don't get a serializable violation, because there is not one.
If the actual order is:

T1 begin serializable
T2 begin serializable
T1 see that account is not disabled
T2 disable account
T1 insert request
T2 commit
T1 commit

The outcome of the above is compatible with the serial order of:

T1 begin serializable
T1 see that account is not disabled
T1 insert request
T1 commit
T2 begin serializable
T2 disable account
T2 commit

Because the outcome is compatible with some serial execution, it is not a violation.  If the serial execution it is compatible with is not the one you want, that is an error in your expectations, not in the execution.
If T2 were both to disable the account, and delete all pending requests for that account, in one serializable transaction, then that would be a violation.  One of the two would get served an ERROR when it tried to commit.  But if T2 only disables the account without deleting pending request against it, your business logic allows that outcome, so that is not a violation.