Steffen has already posted two beautiful solutions. As often happens with specs, I was not detailed enough about what I want the behavior of the signature I provided to be:
I meant multiClickSpeedInMilliSeconds to be the total time between the first and the Nth click. Steffen's implementation assumes it is the time between each two clicks. With that assumption his solutions work great! Steffen, one small gotcha to watch out for with the Zip solution: as you're using the click event twice in that solution:
you'll subscribe to click twice for each subscriber to your observable. Now in this case that is not really a problem, but if click was an observable that has side effects, you would see the side effect happen twice. Try using the Let operator for this scenario..
I will post some of our team's solutions to this problem tomorrow...