Let me just begin by saying that I feel your pain. With my DD, I pushed for two hours and ended up with a 4th degree tear and tons of blood loss (had to have a transfusion). My OB also had to stitch me twice, and sex didn't happen for 3 months as well. (The similarities between our stories are uncanny!) But I've been wondering the same things as you, and I honestly haven't come up with any answers. I have talked to lots of moms who had really awful tears with their first babies and minimal to no tearing with other babies. So, I'm led to believe that there is hope! I've also looked into the issue by reading a couple books about birthing. Anyhow, based on my research and experience, here's what I think of your theories:
1. The epidural could have absolutely been a contributing factor. One of the most important things about pushing is to know when you need to do it, and this can't be determined solely on your dilation. You need to feel an overwhelming urge to push as well, and the epidural can make it really hard to tell if your body is giving you that urge. Without that "urge" (which is your uterus actually pushing the baby down), you won't have the help you need from your body, which can prolong the pushing process and make it a lot more painful. I will say, though, that I didn't have an epidural and had a strong urge to push, but still ended up with the tear. But I still believe that an epidural could contribute to the tearing in other situations.
2. Again, waiting for visible results to begin pushing isn't always the best option. If you were feeling a strong (irresistible) urge to push and were fully dilated, then there would be no reason to wait until crowning to begin pushing. That would be needless torture. Yikes!
3. Squatting and kegels are equally important to strengthening your PC muscle, which could help to prevent tearing. So doing plenty of both would be a very good idea.
Based on what I've read and experienced, I think there are two other major factors:
1. Your position. Trying to push a baby out flat on your back or not elevated at least to a 45 degree angle can definitely set you up for a bad tear. So, it's best to be in a sitting squat position, if possible. There has also been some evidence to show that a side-lying position could be useful. But it's good to explore these positions and maybe even switch them up during the pushing process.
2. Your birth assistant. I didn't realize this before, but it's crucial that your birth assistant (midwife/OB) knows when to tell you to stop pushing. As the baby's head emerges, it's important that you're not giving a really strong push, but that you instead release the baby easily, either with very minimal or no pushing. Obviously, it can be hard for you to tell when this moment occurs, so your assistant really needs to know how to coach you in this. Otherwise, an overzealous push at the wrong moment could lead to a tear. (I've begun to wonder if this may have been a contributing factor to my tear.) So, it'd be a good idea to discuss this thoroughly with your midwife.
Finally, I'd have to say that not having an epidural would probably be the best start to avoiding a tear with your next one. There are so many important signals that we get from our bodies, and these are often masked by the epidural. Also, if you don't have the epidural, you have the freedom to adjust your pushing position, which is also key. I'm not sure if you were planning on an unmedicated birth, but even after my experience, I'd recommend it. Strangely enough, the pushing didn't hurt like the contractions, even with the tearing. I guess it's because our bodies have a nice way of numbing areas getting lots of pressure, which is what happens to the pushing area. Anyhow, I hope some of that's helpful, and I hope that your next birth is better with NO tearing! It can happen! :)