Same thing in Chrome. Chrome shows the HTML source when clicking on the attachment even though:

Content-Type: text/html; charset=UTF-8; name="testattachment.html" Content-Disposition: attachment; filename="testattachment.html" Content-Transfer-Encoding: base64

is in the source of the email.

Seems to just be Gmail's behavior (now I guess).