What guarantees that in the end a transaction will get a confirmation
The transaction fee. Strictly speaking, the fee doesn't
guarantee that your transaction will be confirmed, but it gives miners a direct financial incentive to do so. If you fail to include a sufficient transaction fee, your transaction is likely to take a very long time to be confirmed, and there's no guarantee it ever will.
and why the high volatility of the estimation times from blockchain.info
The estimate is just that: an
estimate. It takes into account the transaction fee you included versus the transaction fee that was expected and the priority of your transaction versus other unconfirmed transactions, but at the end of the day, it all comes down to whether a miner is willing to include your transaction in a block, and there's just no way to predict when (if ever) that'll happen.