I usually work it this way. in the same line that i put:
"1" objStatus "Done"
I also put in (some unused variable)=true
and do so for each objective. For instance, objective one might be o1, objective two o2, etc. make sure to set all the variables to false in init.sqs.
then, at the end of a mission, write a script that checks if the different variables are true. for any that are still false, have it do "#" objStatues "FAILED"
something like this:
?(o1=true) : goto objective2
"1" objStatus "FAILED"
#objective2
?(o2=true) : goto objective3
"2" objStatus "FAILED"
#objective3
...
etc, etc, etc.
Syntax not garunteed.