Ethereum has a similar frequently encountered problem, the notorious "duplicate nonce," that IIRC comes from a known limitation of the protocol. I'll bet Tezos is similar.
Your address has a global counter that increments for each xact. You can't reliably send two consecutive xacts without waiting for the first one to be accepted first. I'm guessing the reason you can't just increment the counter yourself is because the second one might go to a different node that doesn't yet know about the first. Maybe you sometimes get lucky.
Like the comments in the page you linked said, you're better off batching the two operations into one transaction, which I've personally seen working well.