A lot of people dunk on PPPoE, but it does have one redeeming feature: failover is a lot easier and faster compared to IPoE. With IPoE you often rely on vendor-proprietary mechanisms. The closest thing to a common standard is packet-triggered sessions. Normally, BNG's set up sessions using DHCP but you can rig it to do a RADIUS request for a non-DHCP packet without a known session. In this case, it will send the source IP as the radius username, rather than the configured value (this usually comes from dhcp option 82 which includes the customer-id and circuit-id). In an access network, the source address is usually untrusted so instead you would want to have your BNG attach the NAS-Port-Id to the request (which usually contains the SVLAN and CVLAN).

What's wrong with using BFD for IP over Ethernet? You can put whatever control plane you want on top from simple static route priorities to full blown eBGP and everything inbetween.

Nothing, except that it's expensive to do on the carrier side and completely unsupported on any cheap CPE I know of. Aside from that is not a terrible idea, aside from being over engineered when you could just be using DHCP.