Base table or view already exists
This turned out to be an issue with the mysql server itself, not a Craft CMS issue at all. 

It appears that during a previous field addition, the database server crashed and left hanging temporary files that didn't match with the database itself.

Spun up a new database, copied the DB over and everything worked as expected.