First of all if you're doing a RPG mission, better try with this:
;List of Don's missions
myaction1 = mies addAction ["test1", "join.sqs"]
;List of Don's missions end
;List of vendor begin
myaction3 = ase2 addaction ["test2","test.sqs"]
;List of vendors end
This makes your scripting easier and more understandable, as you will see below. That scrip above is meant to start straight after the mission start (Prefered to put the exec to init field of the player)
'_a |#|removeaction ["Join group", "join.sqs"]'
that's kinda stupid thing to do it, like if you'd do it as a myaction it would something like this:
myaction1 = unitiliketojoin [Joingroup","join.sqs"]
and for the join.sqs:
unitiliketojoin removeaction myaction1
Nice and easy way to handle thse, there was two thing wrong in your script if you prefer that way still: _a points to a global user, there should be instead the name of the unit (normally player, but it has to be named like it) and to remove action, only thing you need to do is to write the name of the user who uses the script "removeaction" "actionname"
Cheer, hopefully i helped