gpg repeatedly attempts decryption with a key that isn't unlocked over a key that already is when both are present

Hi, im not sure if this is a problem with the gpg4win project or GnuPG in general, but I have been fighting a frustrating problem for some time now.

I use PGP over XMPP for communication with a few of my friends, and to avoid having to port my primary key over to multiple devices, I generate a secondary key and add my primary as an ADSK.
This results in encrypted messages that contain content for both keys. However, Whenever a decryption is requested, I am always prompted to do pinentry for my primary key (a yubikey), and only ever prompted for the secondary key if I explicitly cancel pinentry for the first.

Is there any way to make it always attempt decryption with unlocked keys first before trying others?

two ideas: you could add the default-key option to your ~/.gnupg/gpg.conf file, pointing to the key ID you want to be used. this would become the overall default, therefore here’s idea no. 2:

use the GNUPGHOME environment variable to point to a different directory than your default ~/.gnupg, and add it to the call of your XMPP app. you could make a full copy of the existing directory, or initialize a new one and import only the keys you want.

sounds interesting?

Sadly its not as easy to control the environment on a program to program basis on Windows as it would be on Linux, so the GNUPGHOME option would also end up effectively global. I’ll try out the default-key option as I think the only other program I have that uses gpg directly is git, which is already pinned on key fingerprints anyway.