welcome to Hello IOTA!
I could help you push your transaction through, but I'll let you do it yourself because you seem to want to learn something here and it's really cool that you try to actually understand why some transactions have trouble getting confirmed.
Sometimes the network is being spammed and confirmations take longer for everyone or the coordination is down and no confirmations happen at all. It's hard to say why a specific transaction keeps pending for a long time.
But there doesn't have to be a specific reason, it's could just be due to IOTA's nature.
Because of the way IOTA's technology works, there's no guarantee to have any transaction confirmed at first or second try.
All transactions basically have the same risk of not being selected for confirmation by the tip selection algorithm.
Those not selected will not be confirmed and they get left behind. The more time passes, the less likely confirmation becomes.
If you're doing many transactions, it's actually pretty normal that a certain amount of them won't go through as smoothly as the others.
If this happens, you need to reattach and promote the pending transaction and thereby give it a fresh new chance to be selected for confirmation. That's what the "Retry"-button does in Trinity.
You haven't reattached or promoted your transaction very often and with very long intervals in between them, so maybe you've just been unlucky with this one so far. If you're really interested in learning how all of this works exactly, I think this would be a good starting point: https://blog.iota.org/the-tangle-an-illustrated-introduction-4d5eae6fe8d4
Now, as transactions can never be cancelled your only option is to get yours confirmed.
The fist thing is to be connected to a good node. My favorite is this one: https://nodes.thetangle.org:443,
because it's very powerful and it's able to do the Proof of Work for you instead of your own device doing that. Processing a transaction fast will lower the risk of it not confirming.
That's particularly important if your transaction uses funds from many input addresses because the more addresses are included in a bundle, the longer it will take to get it broadcasted it to the tangle.
So, always pick a node that can do remote PoW.
In the "Advanced Settings" set "Proof of Work settings" to "Remote" and "Auto-promotion" to "Enabled".
This way Trinity will take care of reattaching and promoting automatically as long as you leave Trinity open and running.
Now hit the Retry button below your pending bundle and just wait for it to get confirmed.
I'm pretty confident that you'll get good results if you try it this way. Good luck!
I wouldn't be able to help anyone without thetangle.org-explorer. If you feel like you want to support its developer Mathieu Viossat in maintaining his service, please consider a donation to the address shown here: https://thetangle.org/about. Thank you!