Set your dynamic linker to debugging mode(s), and see if you can get a clue as to what precisely is going wrong with the dlopen()?
Matter is, OpenLDAP loads SLAPI plugins (as well as backend modules) with the help of libtools' ltdl library, a cross-platform wrapper over platform specific dynamic library loading mechanisms. If you know how to enable debug mode for ltdl, I'll be thankful if you tell me about it :)
Dimitri