When?
Someone told me your transaction will remain in limbo util gets confirmed.
He said your BTC is in limbo and never back.
He said No one can undo any transactions.
Your transactions which are unconfirmed are stored in the mempool of the nodes in the network. For each of the nodes, they have different time limit for transactions to be kicked out or "forgotten" by the network and it would be as if it has never happened before. Once the majority of them has excluded it out of their mempool, you can send a new transaction.
It is true, that your transaction won't be dropped if someone rebroadcasts it continually though. It is possible to replace unconfirmed transaction, pretty easily in fact. It is very hard to undo a confirmed transaction, unless you have loads of hashpower.