Maybe your USART buffer overflow too. Can you try add

DEFINE HSER_CLROERR 1

this will automatically flush the buffer if he's in overflow.

now try without timeout and post what's happening now.

i hope this help...

regards