That turned out to be the solution for me too. If the blog domain and the WordPress installation domain don’t match exactly it makes generated pages pretend that logins are all wonky (even though they work).
Personally, I prefer something to either work like it should or have the decency to straight up break. Things that halfway work in bizarre nonsensical ways are annoying.