http://bugs.winehq.org/show_bug.cgi?id=31563
--- Comment #5 from Bruno Jesus 00cpxxx@gmail.com 2012-09-01 08:15:59 CDT --- A wild guess is that you are hitting a usb driver bug, I had several issues with usb-serial converters in linux.
If you don't check the return of "ioctl(fd, TIOCMGET, &serial)" you are simply hiding the issue, the serial variable will not be filled with the data requested.
You could try playing with strace to check if the problem is really in a write call in the lower library levels or if it gets in a loop inside wine.