I ran in a corner case recently where I didn't have my smartcard handy, and I kept getting pinentry requests to insert it, as background processes were trying to decrypt stuff.
Whenever I would hit either retry or cancel, the pinentry window would disappear, and be immediately replaced by another. This made the machine completely unusable, as the dialog is modal (which it should be, not question here).
It would be useful to have a third option (or maybe just rewire cancel), to allow to temporarily pause the dialogs from showing (e.g., letting gpg-agent denying the requests without asking the user). Presumably, the gpg-agent should also be extended to support a command allowing the user to unpause the requests to pinentry, to restore normal functionality on demand.