as the name "software flow control" implies, flow control using this method is usually implemented in software (or at least a higher level of firmware), which can cause further delays in xoff response. hardware flow control is typically under the direct control of the transmitting uart, which is able to cease transmission immediately, without the intervention of higher levels.