As indicated, you cannot start the open / save as dialog from ajax.
If you want to keep the current content of the page during file upload, you can add a hidden iframe somewhere on your page and have a download link so that some JS backstage sets the src attribute of the specified iframe to the appropriate location.
$('iframeSelector').attr('src', downloadLinkLocation)
I checked this with an action that returns a FileContentResult, but if you set the ContentDisposition in the response headers like you, I see no reason why it will not work with the WebAPI method.
source share