I still think you'll hit a chicken & egg problem there... Or even a why bother, depending on how you look at it, and exactly WHY you want to do this.
Firstly, to disable HTTP processing, you need to gather enough characters to see if it's an HTTP request or not (For protocols that aren't expecting a greeting)... And that's going to be dependent on whether the client is asking for a really long URI, or a really short one... (Because the HTTP/x.x is at the END of the line. A long URI pushes it out as far as several hundred chars).
However...
Protocols that do expect a greeting are going to time themselves out anyway... At the expense of using up a connection to your F5 until they do (Or until the F5 gets tired of waiting and closes the connection itself). You have no way of knowing at this time what sort of banner they want, or even if thy want a banner... (Hence chicken & egg).
But...
You don't explain why you're trying to solve the problem... Or even what the problem is other than some users 'accidentally' open a connection to the VS and aren't intending on talking HTTP. But that doesn't really constitute a problem... (Sorry, thinking out loud here).
Are you experiencing any actual issues from this? The default idle timeout on a tcp profile is 300 seconds... What about setting that a lot lower? 10s? Would that help?
H