dbDelta not doing what it says

You appear to have answered your own question in a comment, but yes, the SQL is wrong. KEYs must come at the end of the statement, after the column definitions.