Code and implementation was correct from the start!
The actual problem and solution: The build system I was using (bam) used different "input tables" when building static libraries versus shared libraries.
So for future users of bam; use the table settings.dll
instead of settings.link
if you are building and linking a DLL.