Il motivo era piuttosto semplice. Stavo chiamando EnsureCreated in Startup.cs che stava entrando in conflitto con le migrazioni poiché funzionava in modo diverso. Per fortuna i proprietari di EF Core me lo hanno chiarito su GitHub.
Quindi, per riassumere:se desideri utilizzare Migrazioni, non puoi utilizzare GuaranteeCreated.