So what was the idea behind taking out a feature and replacing it with a hack, PhysX 3.4.+?

[From the 3.4.1 release notes]

Deprecated:

Trigger notification events for trigger-trigger pairs have been deprecated and will be omitted by default. See the 3.4 migration guide for more information.

[From the 3.4 migration guide]

Trigger shapes will no longer send notification events for interactions with other trigger shapes. For PhysX 3.4 there is the option to re-enable the reports by raising PxSceneFlag::eDEPRECATED_TRIGGER_TRIGGER_REPORTS but this option will no longer be available in PhysX 3.5. It is recommended to not make use of eDEPRECATED_TRIGGER_TRIGGER_REPORTS and instead use a trigger and a non-trigger shape, both with the same geometry and local pose, to emulate getting notifications for overlaps between trigger shapes.

I have an entire projectile system built on this idea, where energy projectiles (particle systems, non-physical in the graphical sense) are fired in the game, and various shots can contact/touch and pass through each other without affecting the physical path of the shot. But notifications of their contact with each other is essential to changing shot game play attributes.

I feel there is a real need for collision detection without a collision response/reaction, and losing this feature ends that. I fail to see how creating two overlapping shapes of the same size, orientation, (where one is solid and one is a trigger, call them “solid-triggers”) replaces this situation. Exactly how would “solid-triggers” ever be able to penetrate each other the way classic trigger-triggers did?
If anything it makes everything more complicated as now there is a redundant non-trigger shape in the mix, that does not have the ability to pass through other objects (solid-triggers) in a ghost like way.

From a performance point of view, I can see it being, one less thing, contact scenario to worry about, but in my opinion leaves a giant hole where a once useful feature existed.

Is it possible for this feature to remain? I can think of many situations where it is/could be used.

Edit:

If any nvidia people frequent this board, Im hoping for some clarification on the replacement solution for the removal of trigger-trigger callback reports. Specifically how it would be fully replicated once removed and if possible the reasons for the change because Im not sure the suggestion in the migration guide can work for me.
Otherwise Im gonna need to make some changes to way my project handles this case if all objects are gonna have to be solid in some way in order to generate contact reports.
As it stands right now, trigger-trigger is the contact scenario where an object can exist in the scene, generate reports, and yet, not affect the simulation around it.
Id really like to not have to filter objects on a specific object-object basis as I have an entire category of objects dependent on these specific trigger-trigger callback reports.

I feel there is a real need for collision detection without a collision response/reaction

You can easily get this effect by omitting the PxPairFlag::eSOLVE_CONTACT flag in your filter shader. It is enabled by default here:

eCONTACT_DEFAULT = eSOLVE_CONTACT | eDETECT_DISCRETE_CONTACT,

But you can remove that flag to detect contacts without sending them to the solver. Would that work for you?