I would setup the following:
Create a static route at the normal 20 preference towards the MPLS router interface
Use the track ip on the interface connecting to the MPLS router for the remote ip address. This will bring down this interface and the route will withdraw when this happens.
Create a route based vpn as the backup and allow that tunnel to remain up.
Create the second static route with the higher preference pointed towards this vpn interface. This route will not be active unless the primary route withdraws.
If you are using OSPF or BGP you can also setup this same type of arrangement using routing preference within the protocol. Then the routes will withdraw without track-ip because the neighbors will go down as the link fails.