Best index for case insensitive match on one field and ordering by another field
A multicolumn expression index should serve your particular query best:
CREATE INDEX ON public.core_user (upper(email), last_login DESC);

If last_login can be NULL, consider NULLS LAST - in index and query.
The rule of thumb is: equality first, range later. See:

Multicolumn index and performance
Get the last 5 distinct values for each ID