I think what happens is a double click actually gets two instances of the program going at once. So, it's a bit of a race. If both are running at the same time, the floodcheck gets missed because the first one hasn't actually been committed yet.

I think the only "real" way around this is to maybe do some javascript. So, you click the submit button, and then maybe the button gets disabled by javascript.