For summoned creatures and shapeshifting forms, Haste increases movement speed normally. However, it does not affect their attack speed.
In principle, two or more Haste spells maintained by two or more mages will stack. However, there is a catch. For example, mage X activates Haste. When mage Y toggles his own Haste on, it will replace any effects of Haste maintained by mage X only on mage Y. Which means, the rest of the party, mage X included, will, indeed, benefit from two stackable Haste spells. (Also see Rally for the similar issue)
A third Haste will increase movement speed for mages X and Y one more level, but mage Z will be left at level one. Therefore, you would have mage X at level 3 movement, mage y at level 2, and mage z at level 1. Activating the third haste triggers the attack speed reset for mage x by exceeding the 0.5 breakpoint.
Consider using Dispel Magic to remove Haste from your ranged attackers and characters using Momentum to avoid bugs listed below, while maintaining the benefits for other party members.
There is a bug in core_h.nss resulting in the loss of any attack speed bonus if the speed modifier is higher than 0.5. Activating Haste + Momentum corresponds to a speed modifier of 0.55, resulting in the loss of the speed bonus. Activating Haste + Momentum + Precise Striking results in a valid speed modifier of 0.45. Unofficial fix for PC available here.
This spell, like Swift Salve, actually slows down aim speed, increasing animation length by +0.8s. See Bugs (Origins) for details.