TO my understand, TempData only gets persist it's value till the next action, which is why it's called "Temp"Data. And a session will be only be able to maintain the data for current user session.
If you don't want timeout(which sounds really weird to me and i can smell bad code practice) then use Cache or persist data to database. You can keep the data as long as you want.