BFD is only recommended to be used on Layer 3 links. Also depending on the platform in use will depict what timers you use for BFD.
You provider most likely will NOT support BFD, so it can only be used internally. In your scenario, it looks like you are running BGP over OSPF for your iBGP?? If so, then enable BFD on OSPF only.
MSTP should be used for your layer 2 vlan segments as you said.
Hope this helps a bit, but its mostly informational as you already answered your own question. BFD is L3, MSTP is L2.. 🙂