The problem with Sharkbait's idea of firing it off on creation is disruption, both to the unit itself and the fact that a player could disrupt the cast.
This is a tricky one.
I suppose that the smoothest way would be, you could BS the cooldown display and then swap the ability out with the actual one:
-Give the unit an instant cast ability (such as the neutral hostile ability 'frenzy'), adjust the fields so that the ability does nothing when cast, and set its cooldown to what you want the initial cooldown to be.
-On unit creation, order the unit to cast this ability. Then, set up a timing system of some sort that will run an action on the unit after a duration equal to the cooldown of the ability.
-For this action, remove the bs instant ability from the unit and replace it with the actual ability.
I thought upgrades that change cooldown don't take effect until after it is done cooling down. I have abilities on my map whose cooldown decreases with level but when I increase their level after casting the ability it doesn't cooldown any faster.
Ghan has said he has fixed this. Monovertex please confirm this fix. This was only a problem with people that had signatures in the upper levels like not the special members but the respected members.