Use async await within an offloaded worker task.

/// <summary>
/// Use async await within an offloaded worker task
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// <remarks>Source https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/consuming-the-task-based-asynchronous-pattern#taskrun</remarks>
public async void button1_Click(object sender, EventArgs e)
{
    pictureBox1.Image = await Task.Run(async() =>
    {
        using(Bitmap bmp1 = await DownloadFirstImageAsync())
        using(Bitmap bmp2 = await DownloadSecondImageAsync())
        return Mashup(bmp1, bmp2);
    });
}