What I found very unfortunate with wireguard, is that it does not really give you an indication if the connection was established. What I have found as an indicator, that it is not connected if there are no bytes received.

Any “established” connection I had, had at least a few bytes received even if there was no traffic passing through.

I know this doesn’t really help, but maybe you could first start to find out, why connection is not really established.