1.9.1 throws Response has already been written from RouteFilter
**Describe the bug**
After updating from 1.8.3.Final to 1.9.1.Final our tests have started to throw this to the logs:

```
2020-10-30 17:33:39,400 ERROR [io.qua.mut.run.MutinyInfrastructure] (vert.x-eventloop-thread-9) Mutiny had to drop the following exception: java.lang.IllegalStateException: Response has already been written
	at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:376)
	at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:365)
	at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:421)
	at io.quarkus.vertx.http.runtime.security.HttpSecurityRecorder$2$1$1.accept(HttpSecurityRecorder.java:75)
	at io.quarkus.vertx.http.runtime.security.HttpSecurityRecorder$2$1$1.accept(HttpSecurityRecorder.java:72)
```

This happens in a ``@RouteFilter(401)`` when it calls ``rc.next()``. This does not happen with earlier versions.

**Expected behavior**
No such error should be output.

**Actual behavior**


**To Reproduce**
```java
    @RouteFilter(401)
    void oasAcceptHeaderMangler(RoutingContext rc) {
        if (rc.normalisedPath().endsWith("openapi.json")) {
            rc.request().headers().remove("Accept");
            rc.request().headers().add("Accept", "application/json");
        }
        rc.next();
    }
```

We use HttpAuthenticationMechanism and these tests are triggering the failure path:

```java
public Uni<SecurityIdentity> authenticate(RoutingContext routingContext, IdentityProviderManager identityProviderManager) {
...
.onFailure().transform(AuthenticationFailedException::new)
...
```
diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java
index 3eafc73f2e4..242673cf431 100644
--- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java
+++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java
@@ -72,7 +72,9 @@ public void accept(RoutingContext routingContext, Throwable throwable) {
                             authenticator.sendChallenge(event).subscribe().with(new Consumer<Boolean>() {
                                 @Override
                                 public void accept(Boolean aBoolean) {
-                                    event.response().end();
+                                    if (!event.response().ended()) {
+                                        event.response().end();
+                                    }
                                 }
                             }, new Consumer<Throwable>() {
                                 @Override
['extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java']