Hi Joe;
That is actually the correct operation. If you notice, if you don't handle the errors in the server side method, the following code will never be reached on the Coroutine call.
if (getPasTimeSheetOperation.HasError)
{
getPasTimeSheetOperation.MarkErrorAsHandled();
}
This is because as soon as an async op failed, in this case, the getPasTimeSheetOperation, the Coroutine iterator block exits immediately. If you don't want to mark the errors as handled in the server side method, my other suggestion would be to handle them in the Coroutine completed event.
You can read Kim's response for further explanation on how Coroutine handles errors in this post.
Hope this helps.