You could keep experimenting with values to reduce the chances of conflicts. Perhaps sessions that last for days. With resolution of hours. Disabling inband housekeeping.
Note that a session-timeout-minutes of 0 enables a slightly different approach which has a little less "active" structure. Yes, setting high values for timeout and session resolution seconds or disabling session timeout by setting it to '0' reduces rate of conflict. I tried disabling inband housekeeping but this didn't helped in this case.
I don't think session mechanics operates like that at the end of a transaction. More generally what is happening is that the second transaction is trying to commit data that was changed by an earlier transaction after second transaction read that data. In this case the data is various bits of the internals that make up sessions and transience storage.
Right but I would like to know how exactly this goes, eg. when I can expect conflicts. So far I'm still not sure when and why conflict will appear. Thanks for the answer -- Maciej Wisniowski