Yes, you're right about the intentions: the goal is to "simulate" SSO in LAPI.
First of all, after taking a look to the inners of EnableNTLM, it doesn'T look like it will do it for SSO. It seems to simply receive user/password and encode it in an NTLM header.
But simply for general comprehension for those who don'T know, there are 3 ways to connect to LL using LAPI: non-tunneled, non-secure tunneled and secure tunneled.
From what I know, the first one talks directly to llserver on the port you find in "the Port variable in the [general] section of the opentext.ini file" usually 2099. This is I suppose the fastest method as there is no middle tier application to handle the request.
Both secure and non-secure tunneled connections use the same basic operation: talk to the web server. The main difference is if it uses SSL or not. Normally, unsecured will be on port 80 and secured on 443. This is mainly useful if your application have to go through a proxy or firewall. If you have to connect through a proxy, read carefully the documentation on how to set your different connection parameters.
The impersonateUser method seems to be the OT way of doing it. The principle is easy: you log as Admin and then pretend to be someone else. See the above post for more warnings.
The last method is more of a PS customization and is not really supported. This imply that you will probably have to modify the code for each upgrade or patch as you will probably have to override the _login method of the APIBase:APIHandler object in the builder. The basic about it is to detect what type of user you have and if it is using a hash login through LAPI, try to log it in using the private key in the DB. This approach demands a lot more development but from many aspects is more dangerous than others if well implemented.
BTW, the regeneration of the key may be done in many ways: agent in LL, trigger in DB, parallel application, etc.
Once you have this key, you may hash with user name and a public key or anything like that. You may also read about cryptography and secure apps before getting in this process.
Hope this helps a bit