The only way I can think of right now that uses the cast time is $npc->CastSpell, however you really need to use this with a Translocate target spell which pops up a confirmation box that the player must accept.
E.g. the following will cast translocate Nexus after the spell cast time is over:
Code:
sub EVENT_SAY
{
if ($text=~/Nexus/i) {
$npc->CastSpell(2943, $client->GetID());
}
}