Hi Keith,
did you verify if the BFD session is actually active?
- show bfd
- show bfd counters
- show bfd session client ospf
There are more verification commands starting with
show bfd if you need to dig deeper.
BFD is a bit strange in that a session that is never established does not count as a failure for failover purposes. This allow preconfiguring it on one side, it will only become active if both sides use it.
The 40s failover time looks more like default adjacency loss after exceeding the
dead interval.
It might help in some situations, i.e., if the interface goes down and there is only one other OSPF router connected to the link, if you use point-to-point interfaces. On EXOS this is done with
configure ospf add vlan NAME area AREA link-type point-to-point. On Cisco IOS you use
ip ospf network point-to-point in interface configuration mode. But BFD is a more general mechanism.
Thanks,
Erik