That last one would probably require a large rewrite of the briefing code. The other two might be easier though.
While I'm on the suggestion of advancing Arguments, how about "persistent" arguments. I'm not saying that they are remembered from mission to mission, but that they can be remembered from event to event. Perhaps the identifier for persistent arguments would be placed in the type of argument list. "any-of" would be joined by "any-of-persist" or something like that. That of course means that we'd need a way of naming argument sets, like we do with variables. Or could persistent arguments be achieved by tying arguments with variables? That's more Kara's court.
Actually it's more Goober's since he came up with the whole argument system and all I've done is tinker with it a little
On the occasions where I've needed to persist an argument I've always just written it into a string variable. That's not exactly a perfect solution cause you can only persist the last one used that way. What we basically need working here is a system where FRED has its own equivalent to the vector class or arrays (huge preference for the former!).
As for the has-destroyed-delay SEXP I'm not certain how easy that would be to implement. I looked at the relevant code when I was working on Team Loadout and IIRC the game only currently stores information on who did the most damage in the log and doesn't record who actually dealt the deathblow at all.
I am however planning some changes to the way the game handles ships which have exited or been destroyed so that the information on who damaged what is better preserved. It may be possible to add a field to say who did kill the ship and store that information so that the SEXP can later retrieve it.