The "session duration" corresponds to K9's "session duration".
This is how long a single server connection is allowed to bounce between IDLE (waiting for something to happen) and re-sync states (catch up on server side changes) before being closed, with the code subsequently establishing a new connection for a given folder.
The "keep-alive" is there to fight IMAP IDLE connections going "dead", and the app not receiving any change notifications. Connections can go dead in one of several ways, and they're outside the app.
So what the keep-alive does is periodically "pings" the server to make sure the connection is still alive; this also can prevent connections from going dead.
K9 does not do this (ignoring the problem, or maybe they are just not aware of it).
The danger of turning off the keep-alives is that if the app's push connections do go "dead", you won't be getting any mail / state pushed, until the app does a full refresh at the end of its "session duration" connection refresh.
Gmail and Dovecot are typically not affected by this, as they implement their own, server side, keep-alives. Other mail servers (Courier, Cyrus, you name it) can very well be.