Handle RServe side errors better
Move updates socket into task scope
Use core.async for progress updates instead of callback