Thank you FlwrChild for your replies! They are wonderful.
I guess how I felt was "If I were Jack, I would leave Ennis a long time ago". But then again, that probably means I can't really put myself in his shoes. I grew up in an entirely different time and social context compared to Jack. But one thing for sure is that there must be something special about Ennis that kept Jack along all those years, something special that is not shown in the movie directly. The movie somehow shed more lights on the "conflicts" between Jack and Ennis, as we can see the final fight scene and the time when Jack suggested Ennis move to Texas and Ennis responded with sarcasm.
I do agree that Ennis is the victim of the society and his unfortunately childhood. What's more unfortunately is that he never had access to things (higher education, good mentors, friends...) that could help him overcome those fears. He will forever stuck in his own little world and own fear. I feel sorry for him. But as the years went by, we can no longer separate "true Ennis" and "injected negativity" as them really become one and that's who he is. Empathy shouldn't be the answer for why Jack should stick with him no matter what. But then again, Jack had his own reasons for sticking with Ennis. And he decided to move on after the final fight, he had all the rights to do so as well.
I personally think after the final fight scene, Jack finally realized who Ennis really was it would never change. So Jack was ready to move on. My reason for this is from a movie making as well as a story telling perspective. If after the final fight scene, Jack went home with a broken heart and still had hope that someday Ennis might turn around, then what's the point of including this scene at all as the same scenario happened many times before and was shown in the movie already? There must be something different this time so that it's worth showing in the movie, and that something different is that "Jack's hope is gone". As for the shirts, I think people don't get over a 20-year-relationship in a day. And Jack may still have love for Ennis, but he also realized it would never work out between them, so it was time to move on.
This is even more important when we combine Jack's death, as this affects the overall message of the movie a lot.
1) If Jack died from an accident, the message would be "the fear caused by a homophobic society makes this accident truly tragic". In other words, had it not been for the homophobic society, Ennis would not have so much fear and he would live with Jack, and they would have some precious years together before Jack died from the accident. And accidents do happen in life.
2) If Jack was murdered, we can imagine that Jack finally decided to pursue the life he wanted with someone else (Randall), and that openness got him killed. Then the message of the movie would be "tragic fate of gay guys in a homophobic society", as either they get killed by openly out, or they live an unhappy life like Ennis.
Both messages make sense, but they are different. Although from a movie-making point of view, the movie implies more to the second one (murdered), because if Jack did die from an accident, the movie would tell a more plausible accident and not the cover-up sounding one Lureen told.