Hi John,
I presume "Enable AJAX" option in your grid is turned on (default setting is enabled).
The problem in your scenario is if a user interacts with the grid after the server user session expires the grid sends an ajax request (you see the ajax indicator) and then during that ajax call instead your page to return the grid data requested your authentication code above issues a redirect and the grid ajax call never gets the data requested eventualy timing out with the "Server does not respond" message you see.
The solution is to handle the session timeout for ajax calls on the server and instead issuing a redirect. Alternatively you can set EnableAjax="False" in on your grid and the authentication code you have will behave as expected redirecting the user to the session time out page when the user initiates a postback and the server user session has expired.
To verify my answer you can put a breakpoint on the redirect line in your code and you will notice the breakpoint will be hit everytime prior getting "Server does not respond" on the client.
I hope this helps.