Free incoming requests ASAP

Before this change, an expiration timer would hold a reference to a
request until the timer expires (5 seconds by default), even if a reply
gets generated much sooner. The result is that all requests recieved in
the last 5 seconds are held in memory even if most/all could be purged.

This change cancels the expiration timer and allows the GC to free a
request for which a reply has been generated.
It's a style issue. I usually prefer the 'return early' style. I'll add braces though.