When iwd is not synchronized to start after dbus, NetworkManager often does not identify that the service is already running and does not manage the wireless interface. I suggest adding the line "After=dbus.service" in "iwd.service" in the [Unit] section, so NetworkManager always identifies that iwd is working.