Answering my own post: it seems that encapsulating the .dll in a non-rentrant VI does not work reliably, at least in Windows 7. So, the state machine approach documented in the KB article seems necessary for now... until a friendlier "unload the .dll" function is implemented.