Old Q, and not sure if it helps, but I do essentially the same as your example when creating PDF files to deliver to the browser. However, at the end of processing, I have the following:
Response.OutputStream.Flush()
Response.OutputStream.Close()
Response.End()
The addition of .Close() basically. Seems to work fine in production.
Ed: Just found this too, mentioning Close(): Is Response.End() considered harmful?
Another approach to your problem is simply overriding Page_PreRender() and putting the content delivery code in there (which kind of makes functional sense). Then you definitely won't get any unwanted HTML, and there should be no need for Response.End() at all.