So I've done some digging through the "rapid fighting" code now that I've cleaned out the pre-fight section of the fight.tcl page. A big issue that people face is that they get a warning for fighting too fast, wait a little bit, fight again, and then see that they somehow missed a bot check. There's a lot going on behind the scenes here that isn't readily apparent.
The very first thing the fight page does, despite my aforementioned changes, is check to see if you are in a fight. It does NOT run the bot check first, which would prevent this issue (and obviously that opens up other problems, otherwise this post wouldn't exist.) The second thing is to check to see if you have an outstanding bot check.
Now, that first thing is unfortunately very complicated, and can result in the user seeing the warning page with no recourse for how to answer the bot check. The warning page hints at this, but offers no solution except to hope for the best.
The "am I in a fight?" check gets more complicated, because it is a processing chain that also checks to see if you have already been suspended for fighting too fast. Here's where things get interesting.
If the user has already been suspended, we first check to see if there's a bot check waiting. If so, display the bot check, and if you pass, hit the fight page again (which will probably increase your spam count). If you haven't yet been suspended, we check to see if you should be with this last hit of the fight page. If this hit triggers a suspension, you are suspended, but **the fight still goes through**. This means you won't see that you've been suspended until the NEXT time that you hit Fight.
Is this starting to explain why we see so many weird results? Like, clicking Fight for the first time in 5 minutes and getting the suspension page? Or clicking Fight, taking a long time to answer a bot check, then getting suspended?
Further, if all of that passes, and you just get the warning page that tells you that you might be suspended soon, and you are currently in a bot check there's no way to get to the bot check before it expires.
Now, I'm explaining all of this to 1) show just how complicated some of this stuff can get, and how completely unintuitive the logic pathways can be (mostly because of IntoExile's recent retarded post), and 2) to help give some guidance on the fight suspension annoyances. At least understanding what is going on behind the scenes will make it less bewildering when you get a suspension out of nowhere, or a failed bot check when none appeared.
I will try to address the issue, of course. It's just exceedingly complex, and difficult to rip logic out and rewrite it.