It takes 2+ seconds between "info" polls to the server. This should be a much smaller interval. Maybe .5 or .25 seconds.
Telerik's own ReportClient example shows a 500ms interval between info polls...
private static byte[] GetDocument(ReportClient restServiceClient, string instanceId, string documentId)
{
bool documentProcessing;
do
{
Thread.Sleep(500);// wait before next Info request
documentProcessing = restServiceClient.DocumentIsProcessing(instanceId, documentId);
} while (documentProcessing);
byte[] pdfDocumentBytes = restServiceClient.GetDocument(instanceId, documentId);
return pdfDocumentBytes;
}