I would expect load balancing using "simple" technique as one packet goes this way, other one that way, as simply being a stopper for services like ICQ etc., where some connection persistency is required. However, I was surprised, that MT docs state, that ECMP creates pairs of source/destination IPs, so it should automatically use one gw for the whole communication.
If that is actually true, I don't know. If you are having problems with such apps disconnecting, then ECMP does not work that way probably.
As for me - our network has two gws too, and I want to go following way - some networks go via gw1, other ones via gw2, packets marked in Mangle, routing-mark used.
0.0.0.0/0 routing-mark=gw1 x.x.x.x check-gateway=ping
0.0.0.0/0 routing-mark=gw2 y.y.y.y check-gateway=ping
0.0.0.0/0 x.x.x.x check-gateway=ping
Well, it may be actually wrong, but first I'll try get traffic separated upon routing marks. The, on the third line, there is still default gw for main routing table, in the case where some other traffic would be forgotten, and if it fails, everything goes via y.y.y.y (fourth line). And if both gws are out, well, then there is someone to shoot