If I'm not mistaken SpawnAvailableNPC is not an action, therefore DelayCommand cannot be used on it. Easiest way around that that I can think of would be to put all the SpawnAvailableNPC (and any others that are non-action but you need to delay) commands into a separate script(s). Then, where you originally had the spawning done in the script, do something like this:
DelayCommand(0.5, ExecuteScript(string sScript, object oTarget, int nScriptVar=-1);
oTarget is the object called to run the script and int nScriptVar, to quote the commentary from the developers, "This value will be returned by calls to GetRunScriptVar."