I don't know if this is really going to help but you can clear the buffers after connecting:
SerialPort.DiscardOutBuffer()
SerialPort.DiscardInBuffer()
and add some delay (like Sleep(100);) between
mySerialPortObj.SendFunc("{3QFG}");
and
string receivedString = mySerialPortObj.ReadFunc();
Perhaps there is a delay in sending the response (the first time) and is that what is causing your application to hang.