I asked Postgres to turn a 0/1 integer flag into a boolean. It refused, and my USING clause was correct.
The column still had DEFAULT 1. PostgreSQL converts the default on its own, without your USING expression, and an integer default has no way to become a boolean. Hence…