The correct pattern is to call the Redirect overload with endResponse=false and make a call to tell the IIS pipeline that it should advance directly to the EndRequest stage once you return control:
Response.Redirect(url, false); Context.ApplicationInstance.CompleteRequest();
from Thomas Marquardt provides additional details, including how to handle the special case of redirecting inside an Application_Error handler.