You can achieve that with a validation rule and a couple of relation summary custom fields.
1. On the task level define a custom Toggle field, a relation summary of Resources. The formula should be something like: if (isnull($c_resourcersinvalid), false, $c_resourcersinvalid || targetobject.c_placeholderresource)
$c_resourcersinvalid if the custom field on the task level we are defining and c_placeholderresource is a custom field on the user which determines it's a placeholder resource).
2. Similarly define a custom toggle relation summary field on the project level (let's call it 'project has invalid resources') on the Work Items relation, which will be true if any of the work items has the c_resourcersinvalid field value true).
3. Define a validation rule preventing the project state change to active if 'project has invalid resources' is true.
Hope this helps,