4 hours is more than sufficient for LHR - even at the peak of Summer. All of your connections are pretty significant in terms of cushion. You're statusless I'm assuming so you don't need to worry about the accoutrements of each airport's lounges. Seat pitch on most all intra European carriers is tight - get ready for 29" max. I would lean towards the flight out of MAD because it gets into PHL the earliest of the three. I don't know anything about LIN or MXP so I cant say if one airport is seen as being more of a hassle to negotiate versus the other. MXP is certainly -the- major airport for the Milan area while LIN is significantly smaller.