Bene, entro un'ora dalla pubblicazione della mia domanda, l'ho già capito. Forse avrei dovuto fare un po' più di ricerca prima di postare.
Il problema è che sqlalchemy deve essere configurato per utilizzare la codifica utf-8. La soluzione nel codice sopra sarebbe cambiare la riga 3 in:
engine = create_engine('mysql://root:@localhost/testdb?charset=utf8', encoding = 'utf-8')