LuCI acquires its information from netifd (ifstatus wanb / ubus call network.interface dump) and in this case it appears that netifd is considering wanb to be logically up/connected. It might help to not let wanb be a bridge, this will remove an unneeded layer of indirection and lets netifd work with the link state directly.
Also you're using proto static, this defaults to ignoring carrier events (it is supposed to be static after all). To let static proto interfaces logical connected state follow the underlying link state, you can unset the "Force Link" option: