Thanks for writing in Egor. Let me give my thoughts on this issue and how it might be worked around.
First off, it seems to me that you're not advocating for removing initialization entirely; you're advocating for moving it into a static initializer which would be called before main(). logog allocates a small amount of memory at LOGOG_INITIALIZATION() time; specifically, it sets up memory management and allocates a default Filter using that memory management. I did this specifically to try to make logog avoid static initialization; in fact, logog would have been much easier to design had I permitted it to use static initializers. (The rlog library makes heavy use of static initializers, which can end up stealing a great deal of memory before main() is called.)
This is all just a caution to you that some users consider "secret" static initializers to be a major source of headaches.
However, I don't think that this is necessarily the source of your crash. Without having access to your code I suspect the s_mInitialization mutex in api.cpp. If you have time, remove all references to it from api.cpp and see if your problem goes away. Alternately, you can wait until I have time to set up a test case based on the problem you described.