As you can see its very difficult to find whats wrong with your deployment.
However I will try to help you debug this issue.
1.write a class that implements HttpSessionListener
2.Override sessionCreated() & sessionDestroyed() method and get accession to HttpSession object
3.Print when this session was created/last accessed etc (additional info abt session)
4.write Entry for this class in web.xml under Listener tag.
5.start application, wait for session time out after 15mins (for incorrect timeouts)
6.Debug which session got terminated and if there is any specific reasons behind it.(i.e. By calling session.invalidate() somewhere else in code etc)
Not sure if this helps but HOPE SO..