Sorry for the delay. Thanks for sharing the details. I see few strange things:
1. First of all, I see that secondary path is not defined, it is just having hop-limit. Can we configure a strict hop path for secondary path as well?
2. I see that you are using "traffic-engineering mpls-forwarding" knob here. If you configure the mpls-forwarding option for the traffic-engineering statement, LSPs are used for forwarding but are excluded from route selection. Do you see same issue if you use "bgp-igp" knob instead of mpls-forwarding?
3. I see that the age of the route is reset after the primary link is down. If the LSP is up, age of route should have been same. I am sorry for asking more details, but can you please share the "show mpls lsp extensive <lsp-name>" for this LSP after primary link goes down. Also can you please share the "extensive" or "detail" output of the "show route 192.168.160.1" before and after link flap?
4. Also please share the OSPF config.
Thanks