using the PS2 keyboard library with Arduino Leonardo
I got the PJRC lib working through a stroke of luck -- I don't understand why this works.  In the example sketch I use these definitions:

const int DataPin = 9;
const int IRQpin =  3;


But when I actually make the physical connections, I have to put the IRQpin (aka CLK) on pin 2 of the Leonardo.  (DATA stays on pin 9 as expected based on the software definitions.)  This software setup and the seemingly-wrong connection is letting me use the library as expected.

When I do move the CLK wire from the keyboard over to pin 3 I get the delayed and incorrect measurements mentioned in the question.

So I'm pretty confused as to why this mismatch in software and wiring works, but I'll keep searching..

Edit: Got things working properly.  The Leonardo was not supported in the 2.3 version of the PJRC lib.  I added some of the missing interrupt definitions in my fork. 

Edit 2: Paul of PJRC told me that Leonardo support is now available in the PS2Keyboard lib he hosts.