Sam,
You might try setting a timeout for your ack’s. In my experience, if the engine is set to wait forever for an ack, then it will actually wait forever… even sometimes when the connection has gone away. This is especially problematic across VPN’s for some reason.
Nathan