Timeout semantics need to handle slow key generation and cases where the gen_server is overloaded and call/2 takes 4.5 secs (is this longer than keygen_timeout?) to respond or blows up when it hits the default 5 sec timeout.