My mistake. The names are so similar
Is AngelScript pre-integrated in Esenthel, or did you do that yourself?
I don't know how the Esenthel engine works, but I imagine the memory leak detection routine it has might be executed before the script engine is released. Most likely the memory leak detection is executed as part of the destruction of some global object. In C++ it is difficult to define the order in which global objects are destroyed, so if the AngelScript is also stored as a global object it is quite possible that the memory leak detection runs before the engine is destroyed.
The script engine will only call the CleanupEngineStringPool callback when it is about to be destroyed (it's called from within the engine destructor).