Stopwatch for Alphabets
Mathematica, 303

Here with white-space and expanded symbols.
Everything happens in the Switch statement of the EventHandler where I pattern match {pressed key, next letter}.

Might want to replace the Quit with something less sinister before hitting escape:

z := AbsoluteTime[];
f = "a"; y = Dynamic;
DynamicModule[{
  a = f~CharacterRange~"z", c = 1, d = f, r = \[Infinity]},
 EventHandler[
  y@d~InputField~String,
  "KeyDown" :&gt; Switch[
    {CurrentValue@"EventKey", a[[c]]},
    {f ..},
      t = z; c++; d = y@a[[c]],
    {"z" ..}, 
      t = z - t;
      d = If[t &lt; r,
         r = t; "!!New record!!,",
         ""] ~~ ToString@t;
      c = 1,
    {a_, a_},
      c++,
    {"\[RawEscape]", _}, Quit[],
    _, d = "Failed"; c = 1]]]