I'd be certain that this is down to the Page Lifecycle and the timing of where the Session value is getting set and then read.
I think you will need to clone the Basic Repeater web part to create a custom version that will allow you to Recheck the 'Hide if no record found' value later in the lifecycle.