This pushes us towards a mode of operation similar to other teardown routines, where we're guaranteed to be free of clashing operations after if_detach/ether_ifdetach returns. Various operations (e.g. vnet moves, ioctl handling) will busy/unbusy the ifnet to block detaching until they've completed.
Some further vnet ordering issues are touched on here to make sure that we handle concurrent re-home/removal properly.