I'm late as well, but I've finished a small demonstration for the dll_open() related problem.
Find the files here:
http://www.firoball.de/upload/tracker_debug.zipStart tracker.c
First it should show a dialog with some number (it's the DLL handle - the proof that you're right about dll_open finding the DLL). Then it should show the state of your Wiimote (not necessary to connect it for reproducing this problem - it only reports either "found" or "not found")
If you rename tracker.wdl to something different and try the same thing again, Acknex will crash.
I added a comment to the functions which are called from the DLL to give you some overview which is what.
Hope that helps to narrow down the problem.