to answer your second question...
not too sure myself, doesn't look like it would tho earlier today in testing my own set of party scripts I had one character repeating a single block over and over and over and over without performing any action. Only thing I could tell was that it was returning true minus the timer being expired so it was running the block but not, restarting the script, running the block but not, etc... till the timer expired.
this was my offending code:
IF
// ActionListEmpty() //not doing any user commands
HPPercentLT(MostDamagedOf(GroupOf(Myself)),80) //an injured party member
HaveSpell(CLERIC_CURE_LIGHT_WOUNDS) //have spell
CheckStatLT(Myself,50,SPELLFAILUREPRIEST) //good chance of casting spell
//these potions are all better than this spell make sure that they are used first
!PartyHasItem("POTN08") //9hp
!PartyHasItem("POTN17") //10hp
!PartyHasItem("POTN42") //2hp/round for 3 turns - 10 rounds/turn - 2hp * 30 rounds = 60hp max
GlobalTimerExpired("ab_heal_spell","GLOBAL") //global timer so certain spells don't overlap by multiple casters
GlobalTimerExpired("ab_cast_a_spell","LOCALS") //local timer for any spells
GlobalTimerExpired("ab_used_potion","GLOBAL") //used a potion timer expired
THEN
RESPONSE #100
SetGlobalTimer("ab_heal_spell","GLOBAL",ONE_ROUND) //start healing timer to prevent spell overlap
SetGlobalTimer("ab_cast_a_spell","LOCALS",ONE_ROUND) //start personal timer
Spell(MostDamagedOf(GroupOf(Myself)),CLERIC_CURE_LIGHT_WOUNDS) //cast spell
END
ignore the comments as it was modified from a working IWD script some things are bit off (the hp #'s on the negated potions)
to test your own scripts for stuttering or blocks that keep repeating over and over for some unknown reason you can modify the following:
BEGIN ~Test stuttering~
REQUIRE_COMPONENT ~Setup-ab_BG1PartyAI.tp2~ ~0~ @50 //~SKIPPING Required Component not installed~
COPY_EXISTING ~dplayer3.bcs~ ~override~ // be sure to change the file names to point to the relevant ones
~dplayer2.bcs~ ~override~
~abparty.bcs~ ~override~
~ab_figh.bcs~ ~override~
~ab_pala.bcs~ ~override~
~ab_prie.bcs~ ~override~
~ab_mage.bcs~ ~override~
~ab_cler.bcs~ ~override~
~ab_drui.bcs~ ~override~
~scripts\ab_scri.bs~ ~scripts\ab_scri.bs~
SET x = 0 - 1
DECOMPILE_BCS_TO_BAF
REPLACE_EVALUATE ~\(RESPONSE #[0-9]+\)~ BEGIN
x += 1
END "\1
ActionOverride(Myself,DisplayString(Myself,~Running block %x% of %SOURCE_RES%.BCS~))"
COMPILE_BAF_TO_BCS
all you need do is change the script files to point to every script file that you add or modify. It is best to make it a standalone mod, however you could tack it to the end of your working mod
(as I did) as a standalone component and only install it as necessary for testing.
and you posted while I typed this big long thing out

ActionListEmpty() prevents 'em from doing things to interrupt whatever user commands are given. Personally, I prefer to have some auto attack and auto life saving potion and spell usage in place... If you were moving the characters about or doing other things with 'em, they wouldn't drink any potions till next script round after having them stop moving.