- snip -
Why doesn't bitcoin implement a FIFO algorithm for confirming transactions
Because in a decentralized system there is no way for you to know which transaction someone else received "first". Therefore it is impossible to enforce "First in, First Out".
- snip -
why hasn't it confirmed?
There is a DOS attack against the blockchain going on right now. It is causing transactions to take longer than usual to confirm.
In order to pull of the attack the attacker has to pay a higher than average transaction fee. They will eventually run out of money and the attack will stop, but in the meantime you can send your transactions with higher fees to make sure that your transactions get confirmed instead of the attackers (which will force the attacker to spend through their bitcoins even faster to maintain the attack).
Another attack...last 6 blocks (edit: and counting) have been hit.
Example:
#385910 with 19125 fake sigOps. The block is only 200KB despite a 5MB backlog (according to tradeblock). It seems this attack is very effective.
Edit:
#385911 unaffected (enough high-fee legit txs)
#385912 = 18990 fake sigOps, 280KB.
#385913 = 18945 fake sigOps, 281KB.
#385914 = 17325 fake sigOps, 470KB.
...etc.