From your known stats, applying ED to Cornell might be a better choice. UPenn is sometimes unpredictable with what they look for in applicants (learned this the hard way), even with Engineering, and they have arguably the most GPA-crazed admissions council among the Ivy League (or for any college, for that matter). Cornell, on the other hand, isn't so GPA-intensive, and they're ranked over Penn for engineering (the only areas where UPenn >> Cornell is Wharton + Dual Degree Programs, for engineering Cornell most often is the better of the two). But you seem to really like UPenn, so I'd say weigh the two against each other. Both do appreciate good EC's (well, that's true of all colleges), and yours match up with an engineering school, so they're pretty close.