For now, I need only Data Model and API to get access, in time when even do not have any data model. 
Yes, I know, that we are already have documented api, and will be easier to implement, but I still need some time.

Ok, maybe someone know some testing tool for API, some unit test which can get my base url, and test all functions in that API and says that everything works by standard?

So, you have to modify some entries in AD by data on Caché side.
In first, I have not been done such work before, I'm just trying to suggest what may help you.
Better way to understand what you have to achieve your needs, it's look at classes. Like EnsLib.LDAP.OutboundAdapter which you've already found and %SYS.LDAP which is lowest class, which actually doing all work with LDAP. Actually Enslib.LDAP as I see used deprecated classes from %Net.LDAP.Client.

How it may help? for example? you can find there such method as GetEntryEditObj,  which I think may be used to edit some entries in your AD, if you have enough permissions. Some example you can find in the class for this EntryEdit. Or method ModifyExts in %SYS.LDAP, also has some examples.

Hope it helps.

To support Raspberry Pi, IntersSystems should support ARM, but not sure that so easy, and could be valuable for them, even if remember how quickly  they ended GlobalsDB. But GlobalsDB was a quite good product, and was used in some projects, and even still used. If somebody needs to use micro-pc they can use some alternatives on Intel's process such as Intel Galileo

Closing Tab in the browser, does nothing on the server side, because in simple way, browser only ask server by user's requests.

You can only do some ajax request just when user closes the page, to close session on the server side, no more.

Every session will be alive in their Timeout, that Timeout could be get by default from settings, or you can set it programmatically ( set %session.AppTimeout=900), and only when timeout is exceeded the used grace period 5 minutes. And only after that session and license will be released. 

And you should remember, that if user closed tab, he can open it again, and it will be the same session as before.

Looks like, you do not know about %Installer.Manifest.  You can use it in any different ways, be it installation new application or just simple changing instance's settings. With this manifest I'm building installation archive with project, it includes deployed code some data, and web sources. I'm installing new server with it, manually, or even with docker. And you can use internal Task Manager to run this installation by schedule automatically. You may also look at this project - GitHubCI, it helps to deploy application automatically just after commit to your github repository.

You can look at the documentation here online

and excerpt about custom installation

The Caché installation program allows you to select certain Caché components to be installed on the computer. For example, you may want to install only the Caché SQL Manager. Keep in mind that some selections require that you also install other components.

and about standard installation

The standard installation procedure installs both Caché server and client components on the computer.

Such error you can face on a windows as well. Your super port has already in use by another instance of Cache. And you can change port for new instance, by editing cache.cpf file in the root of installed Cache. 

To be sure that port is in use you can use some network tools, such as netstat

netstat -na | grep 1972
tcp4       0      0  *.1972                *.*                    LISTEN

or lsof, which can show which process with pid uses this port

sudo lsof -i tcp:1972
cache   14960 cacheusr    4u  IPv4 0x768e107dffb0f4df      0t0  TCP *:1972 (LISTEN)