Sua opção 1:
return 301 $scheme://$host$request_uri;
É exatamente o que você quer.
Não sei por que a linha rewrite ^ http://$host$request_uri? permanent;
resultaria em 302 em vez de 301. Essa é a sintaxe adequada para forçá-la a retornar um 301.