Instead of joining the UI thread to copy data from the network into a buffer, we now drain the data pipe for image decoding on a background thread.