The e.get_statusMessage() args in the ClientUploadComplete event is always "Success". Even if the responses from the server is "StatusMessage":"Failed".
When looking in the code it seems like you have hardcoded the statusmessage in this line:
eventArgs = new Sys.Extended.UI.AjaxFileUploadEventArgs(uploader._guid, "Success", result.FileName,
result.FileSize, result.ContentType, result.PostedUrl, uploader._currentQueueIndex, uploader._filesInQueue.length);
Instead of using result.StatusMessage like you do in the fallback (iframe) solution.
When looking in the code it seems like you have hardcoded the statusmessage in this line:
eventArgs = new Sys.Extended.UI.AjaxFileUploadEventArgs(uploader._guid, "Success", result.FileName,
result.FileSize, result.ContentType, result.PostedUrl, uploader._currentQueueIndex, uploader._filesInQueue.length);
Instead of using result.StatusMessage like you do in the fallback (iframe) solution.