Port type should not matter, libusb guards the driver from those variations.
Good news btw, I managed to get exception 11 - which is segment not found. And when it occurs, virtual memory of the process is close to hardware available. It was harder for me to observe it, as I'm running 64bit machine with 16GB of RAM. After your last post I tried to run the same on 32 bit machine and was able to receive crash around 57th loop. Virtual memory mapped by the process was near 4GB.
Exception 11 comes from CPU, there is nothing much we can do about but catch it. Yet after that driver crashes on something else. I need to run more tests (and use some valgrind magic) to identify the leak. In mean time, would it be possible for you to dload/dlunload lips3000a between cycles? I imagine it should free resources allocated by the driver.
Try again and observe virtual memory usage (using tool like top or similar) to confirm if you are experiencing same issue.