We had the same issue and we moved the validation to the PO_APPROVE block, so as soon as user clicks on the approve button it validates whether project and task has been populated.
Trigger event: WHEN-NEW-RECORD-INSTANCE
Trigger Object: PO_APPROVE
You may try this too.
You also try with following setting with same condition .
Event : WHEN-VALIDATE-RECORD
Object : PO_LINES