output – Producing a single $Aborted

Using @Kuba’s faboulous answer here (stop notebook evaluation when Assert fails), I produce the following code to stop execution if I am evaluating a long initialization cell while the notebook directory is wrong. However, the result could be improved. Presently I get one output cell containing $Aborted for each subsequent line in the evaluation cell. The world would be better if I got a single output cell saying $Aborted. I really do not need many.

fpath=(NotebookBrowseDirectory/.Options($FrontEnd))<>"\";(*save in notebook path*)
(*stop evaluation if the path does not end in Documents*)
If(StringTake(fpath,-11)!="\Documents\",
(*Remove cells from evaluation queue*)(
SelectionMove(EvaluationNotebook(),All,Notebook,AutoScroll->False);
FrontEndExecute@FrontEndToken@"RemoveFromEvaluationQueue";
SelectionMove(EvaluationCell(), After, Cell, AutoScroll -> False);
(*set $Pre to abort current cell but before that schedule a task to un-define $Pre*)
SessionSubmit(ScheduledTask($Pre =., {Quantity(3, "Seconds")}));
MessageDialog("Wrong working directory! Open and close a file in /Documents and rerun.");
$Pre=Abort()&;Abort();));

For example, if the above code is followed by three lines (2;2;2;), then I will get three output cells saying $Aborted. Can we make them one?

Thanks a lot!