It is unclear what exactly you have tried / been using, but I do have an approach for you:
$ cat /etc/systemd/system/netns-wg.service
[Unit]
Description=netns for wg
BindsTo=nspawn-fail.service
# You cannot have After= for the nspawn here
# even if you need / want whatever extra effect
# that BindTo= + After= might pose, obviously
[Service]
Type=oneshot
RemainAfterExit=yes
# I still have no idea if you want this
# to be automated or not
ExecStart=ip link add wg0 type wireguard
ExecStart=ip netns add wg
ExecStart=ip link set wg0 netns wg
# The conf file will need to be on the host side, obviously
# ExecStart=ip netns exec wg wg setconf wg0 /root/wg0.conf
# 1 means pid 1 here
ExecStop=ip -n wg link set wg0 netns 1
ExecStop=ip netns delete wg
# I still have no idea if you want this
# to be automated or not
ExecStop=ip link del wg0
$ cat /etc/systemd/system/nspawn-fail.service
[Unit]
Description=mimic a failed nspawn
# switch to Requires= or Wants= as necessary
BindsTo=netns-wg.service
After=netns-wg.service
[Service]
# I don't know if you can use this instead of
# --network-namespace-path=, but since you
# wouldn't be having any Interface= in your
# .nspawn, you will probably need to replace
# ExecStart= of systemd-nspawn@some_name
# with a command line that has no --network-veth
# anyway
NetworkNamespacePath=/run/netns/wg
# Change `false` to e.g. `sleep 1d` if you want
# to see if it works in a successful case
ExecStart=bash -c 'ip l; false'
As you can see, the idea is that you manage the whole netns with a service (on the host side). And as you wished, it (well ip netns exec) allows you to bring up the wg after it has been moved to the alternate netns. (I'll leave it for you to confirm whether or not wg actually supports that.)
So when you configure your nspawn, you'll need to attach it to "an existing netns" (which is brought up and down along the nspawn) instead of assigning an interface to it.
Note that it is expected the netns (and wg) will be brought up anyway, because it will not and cannot even wait until systemd attempt to start the nspawn, so let alone after. What this approach offers is just that the netns (and wg) will be brought down if the nspawn failed (or were cleanly stopped).
P.S. You might need yet another ExecStart= line that brings up the lo interface in the alternate netns.
don't want the interface to UP at the host, why wouldneed to ip link add againbe a problem? (Aren't you looking for automation for that anyway?)abstract out the above two commands using systemd service and dependencywrite a oneshot service for them?