For starters, I have a 5 step quest going. The 4th step is killing the person and taking their medallion as proof (I know, not very original). How do I get a journal entry saying "You recovered the medallion, etc." at that moment?
Lots of ways to do this. You could put a script on the medallion that checks for http://www.uesp.net/morrow/editor/mw_cstypes.shtml#onpcadd so it recognizes when the medallion is added to the player's inventory and then does a http://www.uesp.net/morrow/editor/mw_cstypes.shtml#journal command for the appropriate quest stage.
Here's an example from Bloodmoon:
Begin bm_bloodskal_sword;activates the draugr and skeletons when player picks up swordshort OnPCAddshort doonceif (doonce==1) returnendifif (OnPCAdd == 1) set doonce to 1 Journal BM_Bloodskal01 10 returnendifEnd
Next, if there are any guards still alive outside (there's 2 guards outside the door and 2 more up a hill out of view), I want them to automatically attack, since the medallion was taken and their leader killed, and the next journal entry was given. Is there a way to do this?
You could attach scripts to the guards that use http://www.uesp.net/morrow/editor/mw_cstypes.shtml#getjournalindex to check for the above quest journal index you did when the medallion is taken and then do a http://www.uesp.net/morrow/editor/mw_cstypes.shtml#startcombat.
Here's an example from Morrowind:
begin eydisScriptshort noloreshort doonceif ( doonce == -1 ) returnendifif ( GetJournalIndex FG_KillCronies >= 10 ) if ( GetDistance Player <= 256 ) ForceGreeting StartCombat Player set doonce to -1 endifendifend eydisScript
You wouldn't need the ForceGreeting, unless you want them to address the player first.