Hi Pat
I was thinking again about the validation of FK and what steps does the Oracle make to validate it. It should be something like
1. Make lock on the slave table
2. Make lock on the PK index
3. FTS on the slave table
- for each row - select with the index and check if it returns rows

so maybe it will be faster if somehow the index is cached, and not the table. Maybe with some query that makes INDEX FAST FULL SCAN

You said that you tried parallel ddl, what was the results exactly?
ALTER INDEX parallel n
somethinc like that?