Isso é por design. Uma reserva de URL não é o mesmo que um registro de URL, que acontece dinamicamente quando um aplicativo se registra com HTTP.SYS para ouvir. No caso de uma reserva de URL, o HTTP.SYS não sabe se o URL em uma determinada reserva está simplesmente indisponível temporariamente ou não existe. Tudo o que se pode saber nesse caso é que existe uma correspondência de nome de host válida (devido a seu caractere curinga strong / fraco), mas o caminho da URL não corresponde a nenhum dos ouvintes registrados no momento.
Se você deseja uma resposta 400 ou 503, não use nenhuma URL Reservation nem use Reservas de URL explícitas que não incluam curingas. Em suma, se você configurar o HTTP.SYS de modo que ele possa corresponder ao prefixo da URL para qualquer Reservation (incluindo os dinâmicos criados via Registration), ele entregará a solicitação ao aplicativo de escuta (se as correspondências restantes), ou retorne um 404 se não puder encontrar um ouvinte registrado ativo.
Outra solução que pode ser mais simples é usar o próprio serviço IIS para gerenciar o envio de um 503. Para fazer isso, não pare o site, mas sim interrompa o Pool de Aplicativos associado a ele. Isso fará com que uma correspondência totalmente qualificada ocorra no HTTP.SYS (mesmo com as Reservas de URL do wlidcard), mas resultará em um 503 porque não há AppPool para entregar a solicitação.