Help with downloading images from a URL using async

I need some help with downloading images from a url using async.

I am successfully done a UnityWebRequestTexture to get an image data from the internet. However I want to Encode that image to a PNG and then save that image to my computer.

I currently have

private async Task SaveImageToDevice(UnityWebRequest webRequest, string id)
    string filePath = Application.persistentDataPath;
    filePath = string.Concat(filePath, $"{id}.png");
    Texture2D texture = DownloadHandlerTexture.GetContent(webRequest);
    byte[] dataByte = texture.EncodeToPNG();
    await Task.Run(() => File.WriteAllBytesAsync(filePath, dataByte));

Now this works, but lowers the frames per second to bellow 15. I am wanting to use the async / task system but it seems to be letting me down.

Any advice how I could improve the above code to make the fps not lower?