Hello,
This is unfortunately behavior by design of FTP over TLS itself. The FTP protocol requires a new TCP connection to be established for each data transfer (and directory listing). TLS session resumption is common practice when protecting data connections with TLS. The main reason is security - it binds the data connection to the FTP client that initiated the transfer. Without TLS session resumption, the server does not know whether the newly established data connection is legitimate (i.e. whether it was really established by the original FTP client).
However, it seems that the TLS session cache can be flooded unreasonably, and we will look into this issue.
TlsOptions.DoNotCacheSessions disables the use of TLS sessions altogether (no caching on the server). Please note that if it is disabled, data connections are rejected unless you set server.Settings.FtpRequireDataSessionResumption = false (it is required by default).
It seems reasonable that if FtpRequireDataSessionResumption is disabled, there is no need to cache TLS sessions on the server either. We will address this as well.
Also please note that TLS session resumption works differently in TLS 1.3. Do you see a different memory profile when using TLS 1.3?