Send onImageReady off UI thread to avoid blocks