I might be inclined to the 1st option, by moving Shar-Teel's interjection (if I can get author permission).
If not, then the fix I understand better is to place it as a DisplayStringHead call. Not elegant, but better than trying to patch the cutscene.
Although...
I guess I could R_T patch the state to
IF ~~ THEN BEGIN 4 // from: 3.0 2.1
SAY #75030 /* ~Well then, I assume that Garrick has explained what your duties are. You must simply dispose of the ruffians when they come to threaten me. They shouldn't be too hard to deal with, but I would advise you to strike fast. Whatever you do: don't speak with them. One of them is a mage whose mystic words can sway even the wisest of men.~ */
IF ~~ THEN DO ~SetGlobal("SilkeJob","GLOBAL",1) SetGlobal("X#SilkeSharInt","GLOBAL",1)~ EXIT
END
and then add to the area script
IF
Global("SilkeJob","GLOBAL",1)
Global("X#SilkeSharInt","GLOBAL",1)
THEN
RESPONSE #100
SetGlobal("X#SilkeSharInt","GLOBAL",2)
CreateCreature("_MERSIL",[3834.1755],0)
CreateCreature("_MERSIL2",[3793.1723],0)
CreateCreature("_MERSIL3",[3876.1774],0)
ClearAllActions()
StartCutSceneMode()
StartCutScene("_ILKECUT")
END
EDIT: Or, of course, I could read your post carefully, think, and then go duh...
changing this to I_T_C might fix the problem. Perhaps I should go test this out before starting to take everything apart