Adding a small fee doesn't make your transaction slow, nor the process... Adding a small fee will give the miners a smaller incentive to add your transaction to the block they're working on...
A block can contain up to 1Mb of transaction data (+ a maximum of 3 Mb of witness data). The difficulty gets adjusted every 2016 blocks so that the average time between two blocks is about ~10 minutes (on average).
This means that (on average) about 6 Mb of "actual" transaction data can end up in the blockchain per hour. If more than 6 Mb of unconfirmed transactions get broadcasted per hour, the mempool of the nodes get filled with a backlog of unconfirmed transactions.
Since miners are businessmen, they try to optimize their financial gains. They do this by prioritizing the transactions with the highest fee per (virtual) byte of transaction data. They do this because a miner can add a coinbase transaction to the block. This coinbase transaction funds an address generated by the mining pool with a value of the current block reward PLUS the sum of the fees of all transactions included in a block. So, if you add insufficient fees, you give no incentive to miners to prioritize your transaction and the odds are it remains in the mempool of the nodes for a longer period of time. By default, nodes prune old unconfirmed transactions from their mempool after 2 weeks (if my memory serves me right)
However, there are tricks to increase the incentive for pool operators to prioritize your transactions... If you loop back to my previous post in this very thread:
- if you wait it out, you do not increase the incentive of the pool operators. Usually, your transaction will only be mined if the backlog of unconfirmed transactions is gone. If this takes more than 2 weeks, odds are most nodes will prune your tx from their mempool
- if you wait but keep rebroadcasting, it's the same situation as the one above (just waiting it out), but you periodically remind the nodes of your unconfirmed tx, pushing your tx back in their mempools once it gets pruned
- if you bump the fee, you replace your transaction with one with a higher fee, so the amount of sats per (virtual) byte of transaction data is higher, giving the pool operators a higher incentive to add your tx to the block they're trying to solve
- if you double spend the unspent output used as an input for the stuck transaction, you kind of try to achieve the same thing as bumping the fee, but in a much more artisinal way with waaaaaaay less chance of succes
- if you do a cpfp, you basically use one of the outputs of the stuck transaction as input for a new transaction. The miner can only add the fees of the new transaction to the coinbase reward if they also add the stuck transaction to their block. The trick is to make the CPFP transaction with such a high fee (per virtual byte of transaction data) that the pool operator has a high incentive to add both in order to be able to claim the fees of the second (cpfp) tx
- if you pay a mining pool to add your transaction, you directly give money to the pool operator to counter balance the low fee... This is a non-technical sollution, but it does work (eventough, as noted before, it can be pretty pricey)
One thing to remember: those are all odds and averages... It IS possible to get into a block with a tx with a 10 sat/vbyte fee whilst there are 15 sat/vbyte fee tx's still in the mempool. It IS possible your 100 sat/vbyte tx doesn't get added to a block eventough most other tx's in the mempool have a 15 sat/vbyte fee... This being said: the selection of the tx's from the mempool is allmost always an automatic process, and usually you can predict pretty well which tx's from the mempool will be added to the next block.
--snip-- there's no other reason why a transaction gets unconfirmed for several hours.
Eventough insufficient fees is allmost allways the culprit, it does happen that a transaction has unconfirmed parents, or is dropped from the mempool of most nodes (usually because it has been broadcasted to long ago). There might even be other reasons, but i can't think of any except those two right now.