yeah, I think 'newRecord' sometimes is not reliable for certain things - I've seen similar issues and have had to use lookup in an after submit to get accurate values, but I think your solution of specifically looking for APPROVE is likely the best idea