Thank you Rushi for the comment!
I did configure metric for primary, secondary, third, and forth, 0, 5, 10, 15 respectively. Since the traffic routed through New York after disabling the primary link, therefore, I removed them.
Also, I've configure rpm and IP monitoring for the ISPs. Since I want the VPNs route through OSPF, so I don't want to configure them under rpm and IP monitoring.
I believe I just need to find a way to send 10.4.0.0/16 only to New Jersey, no where else, ever; even if all the routes to New Jersey are down.
Also, to send 10.2.0.0/16 only to New York, no where else, ever; even if all the routes to New York are down
Any idea about that?