windows openbsd ssh agent running, and it doesn't seem to want to communicate with the gpg agent
That's normal; ssh-agent never communicates with gpg-agent at all.
The way it's supposed to work is that gpg-agent pretends to be ssh-agent – it exports a separate socket that is compatible with the ssh-agent protocol, and your $SSH_AUTH_SOCK tells the ssh client to directly speak with gpg-agent (emulating ssh-agent), while the actual ssh-agent process remains completely unused.
But current GnuPG versions only support doing this on Unix-like systems and not on Windows. Support1 for emulating the Windows OpenSSH ssh-agent was added literally 3 days ago at the time of writing this post, and will be available in the next GnuPG release. (Since the most recent release was also 3 days ago, you'll have to wait a few months for the next one.)
I would suggest a more direct approach: obtain the Yubikey PKCS#11 module (libykcs11.dll) from yubico-piv-tool and configure it in your ~/.ssh/config as PKCS11Provider
. This lets the OpenSSH client directly talk to the key's PIV applet and removes the need for either gpg-agent or ssh-agent.
1 Because Windows historically lacked AF_UNIX sockets (until 2016), it's kind of a mess and different programs choose different alternatives – e.g. the native Microsoft port of OpenSSH uses named pipes (which are similar to, yet not exactly like, AF_UNIX sockets) whereas the Cygwin port of OpenSSH uses loopback TCP, and so on.
Adding to the complexity is that Microsoft's OpenSSH port – for unknown reasons – uses a system-wide ssh-agent that holds all users' keys (distinguishing them by caller's UID), unlike the regular approach of each user having their own ssh-agent instance. This might actually be a problem for GnuPG, whose gpg-agent isn't designed to work like that and just assumes that all clients are the same user. (Hopefully you only have one user account on your computer!)