You have 2 fundamental means to accomplish backup; based on line protocol, and based on routing entries. If you want the backup to trigger when the line protocol is up but the link is not clean, then you may need to look into other backup schemes, to include floating static routes or dialer watch. However, this means that you have to run dynamic routing over the primary interface, and that the errors on the primary interface will be sufficient enough to cause issue with the route exchanges on that primary interface. Also, beware that intermittent errors with the primary link could cause a link (and route) flappage, where one moment the route is lost so we dial, the next moment it's back so we disconnect, etc. Dialer watch can help to prevent this, by delaying when it will actually dial the backup.