Very few of the current pinentry implementations report timeouts as timeouts. Some of them (gnome3 in particular) do not even respect the timeout parameter at all. This patch series cleans up and improves pinentry error reporting, and ensures that all pinentries respecting the timeout parameter.