ho guardato molto velocemente miei vecchi lavori e noto che metto sempre una cosa del genere

System.Web.HttpContext.Current.Response.End()

nel tuo caso dopo context.Response.BinaryWrite(output.GetBuffer())

Ma sto andando a memoria (e non è che ne abbia molta)