Safely wrapping around onProgress, so it doesn't interrupt communication, Closes #356