AFAICU, currently there's a /etc/hotplug.d/net/99-batman-adv script which tries to configure both bat0 , and any interfaces coming up that might have to be included there. Problem is, hotplug.d/net scripts are called when interface is "added" but not necessarilly brought up yet. So there's a "sleep 3s" that works in most cases as a window for slow hardware bring up the interface.
I like the idea of using the iface "ifup" hook for adding hard-interfaces. On the other hand I opt for keeping the net "remove" hook for removing them because batman-adv handles these ifup/ifdown blips internally. If you adjust that part I'll will merge your patch.