The config has indeterminate ordering because it's a dictionary. It turns out that my example is failing validation for a different reason (datetime validation was too strict -M8 and datetime64[ns]-) but because I am just checking to see if the type checking fails, the test "succeeds" before we can actually validate the bucket. It just so happened that the test validated the columns in a different order which surfaced the bug!
Solution: Fixed the datetime validation failure. Fixed the offending category code which was masked.