Sticky sessions are strongly recommended (if you want any notion of scalability to occur in a clustered environment), but I wouldn't say required from a 'it cannot work without it' stand point technically. It is after all required of Clarity (if configured appropriately for clustering) that should an app service fail or be unreachable, that the load balancer should absolutely be able to redirect a user's incoming request to another app service and provide continuity of service to that user without losing their session.
Please do make sure that the XOG requests are sized appropriately that they will always complete inside of any constraints on the network regarding timeouts. I have seen this sort of problem occur where timeouts are set to 5 or 10 minutes, and a XOG request is near enough to this threshold to sometimes be under it, but sometimes be over it and so intermittently get killed, neither by Clarity or the client issueing the request, but something on the network inbetween.
Otherwise, it is quite possible and feasible for a monster XOG (or due to some problem) to take upwards of an hour to complete and Clarity would still be fine with that; it's not a hard coding or configuration of the app itself at play there that is terminating the connections, with the exception of some fault in the app server which you are seeing be logged in the app-niku log files (double check those).