When rule checks if property located on a data page does not have a value. Data page fails to load because a missing parameter, therefore when returns true.
I did some testing and it seems to be a specific pega defect. It only happens if a when rule fails inside of an activity step. If we manually throw a RuntimeException in the DT, or manually set status to fail, or access the erroneous DP directly from the activity, error handling works as expected. If we remove the DT and put the failing when rule in pre-conditions of the same step, the defect is reproduced.
I didn't look into it further and ensured that the when rule never fails as a workaround.