What version of LabVIEW are you using? The Sound VIs in LabVIEW 8.5 can handle simultaneous input and output (there is an example shipped with LabVIEW for doing this). What sample rate and buffer size are you using? How does changing these values reflect the quality of the sound?
The issue of compiling to a .DLL and calling it back may simply be efficiency of the code, usually pops/clicks in sound are due to buffer underflow/overflow. For what reason are you compiling to a .DLL? If you are keeping the code in LabVIEW, would using a subVI be an acceptable work-around?
Let me know what you find. Cheers!