So I want to have a ConnectorBeforeModify Powershell do a check if XXX has happened on the target. If it has then allow it to proceed. But if the XXX process has not happen I want the Script to return an error to connector and not process the request.
I am pretty sure you should be able to do this but have not seen anything referencing how to do this.
There is no such concept of stopping Provisioning based on some conditions in Native Rules (Connector Before/After Create/Modify/Delete).
Even if it works, it may not be a good approach. However you can give a try. I never come across these kind of requirements. If all required we stop user from submitting the request itself not stopping in the middle by erroring out.