After Cast Delay
After you use a skill, there is a certain amount of time where you can't use the skill, or other skill. This is what is called After Cast Delay.
There are technically three forms of after-cast delay: an animation delay, a global reuse delay, and a unique reuse delay.
Animation delay is the amount of time it takes your character to "perform" the action, which is generally either constant (e.g. Heal when cast on an ally) or influenced by the time it takes you to execute a regular attack (e.g. Heal when cast on an undead enemy). The latter, obviously, depends upon ASPD. You generally cannot initiate another skill until you have finished your initial animation for the previous one.
Global Reuse Delay
Global reuse delay, on the other hand, is a fixed amount of time after which no additional skill can be directly initiated. This is why even when using offensive Heal at high ASPD, you still can't (by yourself) initiate multiple heals in succession faster than your normal heal. Bragi and gears that reduce "after-cast" or "re-use" delay will shorten this time. This is why you can heal allies a little bit faster in Bragi, but with high ASPD you can offensively heal, say, Zombie Prisoners or Anubis very fast. Even at 100% reduction, this delay is hard-capped at about 300ms or 3 skills per second (officially and here; note that most eAthena servers do not set this delay by default and thus can spam skills much, much faster, especially high rates).
Unique Reuse Delay
Unique reuse delay further prevents you from using a particular skill again, but you can use other skills. It's the pink-colored pawprint over an individual hotkey instead of grey over all of them, and is not reduced by anything. For instance, consider the Endure skill. You can't use it again, even if the effect runs out, for several seconds, but this would be disastrous if you couldn't use other skills in the interim. Only reuse of Endure is prevented for the full duration.
How After Cast Delay Works
You actual ability to follow one skill with another depends upon the highest of those three factors. Consider Jupiter Thunder. It has no unique cooldown, so that's ignored. Its animation delay correlates with ASPD. It has no global cooldown, so this caps at about 300ms. Therefore:
If, because of ASPD, it takes you 1 second to perform a regular attack (ASPD = 150), the fastest you can follow JT with another JT with instant cast (or any skill) is 1 second. However, if your ASPD is 190 (it takes you 200ms to perform a regular attack), the fastest you can follow JT with another skill is about 300ms (the global cooldown cap).
So for an ASPD-dependent skill animation delay, ASPD will help you up to about 3 attacks/second (between 183 and 184 ASPD) as long as you can reduce the global cooldown below the reuse cap. Higher ASPD doesn't matter, other than being able to move/attack ever so slightly quicker after performing the skill.
As a general rule of thumb, enemy-targeted offensive skills usually have ASPD-dependent animation delays, while ground-targeted and support skills usually have fixed animation delays, but there is no particular hard-and-fast rule for this. For instance, Acid Demonstration actually loses any animation delay when cast instantly, but does have an animation when used below IC! Also generally, "cooldown" in skill descriptions is usually referring to global reuse delay, while any additionally-mentioned reuse delay is the unique reuse delay.
Doppleganger Cards will help a Staff of Magi user spam JT up to about 183-184 ASPD, after which the gain is insignificant and will not affect damage over time. 3 is often overkill since Wizzies can use Berserk Potions and such, but it's basically guaranteed to be able to spam JT quickly even, say, in Slow Grace.