This change fixes the issue by letting ReadPixels return a channel and executing this asynchronously when needed. Closes #2815