The problem is, or one problem anyway, that both NICs are connected and have a link, but the drivers and SW to make them a NIC team are not running yet. The switch sees both ports up and may attempt to send traffic on both, depending on load balancing algorithms. (I could be wrong on the internals - I've never dissected LACP behaviour to this level before.) This is why I asked about DHCP and TFTP from different servers - if the switch is balancing on IP hash, then one server's traffic may resolve to one port and the other server to the other (which isn't doing PXE).
You're right that #1 is ugly. It also won't work, or will be very difficult to automate for people who do stateless / autodeploy.
In #2, you might not have to override failover order. MAC or port hash depends on the MAC or port (no kidding, right?!). With two NICs, essentially the even MACs or ports go on one, and the odd on the other, until the number of ports changes either administratively or due to failure. So, if you can consistently set it up such that the MAC or port (whichever you choose) are one even and one odd, then you're set. One way to do this might be to edit esx.conf to set specific MAC addresses and reboot.
A trick for virtual port is to check the virtual port ID (esxcfg-info -n or the esxtop network screen show it ), and if it's not even or odd (whichever you want), delete and re-add until you get what you want. Not pretty, but scriptable.
In vSphere 5 and autodeploy, you can specify MAC addresses as part of a host profile.
Peter