"Boş olmadığı halde beni neden yönlendirir" biraz yanlış bir tabir. Boş olmasa yönlendirmez. Kod nasıl yazıldıysa o şekilde işler.
Eğer session timeout sürelerini kontrol ettiyseniz hosting kaynaklı bir problem olabilir. Bazı hosting firmaları session timeout sürelerini çok kısa tutuyor bazıları ise hiç izin vermiyor.

1. Session'ı düşüren bir kod parçası olup olmadığını kontrol edin, gözünüzden kaçan birşey olabilir.
2. Ajax request ile session'ı sürekli kontrol edip çıkış yapılmadığı sürece timeout süresini uzatabilirsiniz.
3. Identity gibi bir yapı varken session ile hiç uğraşmayın.