nginx sets content-type text/html on redirect
There is nothing wrong with the redirect having a content type of text/html. On the contrary, it is actually mandated by the HTTP/1.1 specification itself:


  The temporary URI SHOULD be given by the Location field in the
  response. Unless the request method was HEAD, the entity of the
  response SHOULD contain a short hypertext note with a hyperlink to the
  new URI(s).


The cache control header might be confusing Webkit mobile. Have you tried add expires off; inside the location @redirect block?