### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

I got the following unexpected error when trying to delete a policy that does not exist.

```log
self = <botocore.parsers.QueryParser object at 0x7fa3d2cd2820>
xml_string = b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Serv...nd was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'

    def _parse_xml_string_to_dom(self, xml_string):
        try:
            parser = ETree.XMLParser(
                target=ETree.TreeBuilder(),
                encoding=self.DEFAULT_ENCODING)
            parser.feed(xml_string)
            root = parser.close()
        except XMLParseError as e:
>           raise ResponseParserError(
                "Unable to parse response (%s), "
                "invalid XML received. Further retries may succeed:\n%s" %
                (e, xml_string))
E           botocore.parsers.ResponseParserError: Unable to parse response (syntax error: line 1, column 54), invalid XML received. Further retries may succeed:
E           b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Server Error</h1>\n<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'
```

### Expected Behavior

I expect a `ClientError` with the message code as `NoSuchEntity`

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

`docker run --rm -it -p 4566:4566 -p 4571:4571 localstack/localstack`

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

Im using boto3 with the following init:

```python
client = boto3.client(
            'iam',
            region_name="us-east-1",
            endpoint_url="http://localstack:4566",
            aws_access_key_id="dummy_id",
            aws_secret_access_key="dummy_key")
```

To reproduce the error try to delete a non existent IAM policy:

```python
import boto3
from botocore.exceptions import ClientError

client = boto3.client(
            'iam',
            region_name="us-east-1",
            endpoint_url="http://localstack:4566",
            aws_access_key_id="dummy_id",
            aws_secret_access_key="dummy_key")

try:
    client.delete_policy(PolicyArn="arn:aws:iam::000000000000:policy/non-existent-policy")
except Exception as ex:
    if isinstance(ex, ClientError):
        print("expected")
    else:
        print("not expected")
```

*Output*

```log
not expected
```

*Error*

```log
Unable to parse response (syntax error: line 1, column 54), invalid XML received. Further retries may succeed:
b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Server Error</h1>\n<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'
```

### Environment

```markdown
- OS: MacOS BigSur 11.4
- LocalStack: latest
- Docker: v20.10.7
```


### Anything else?

_No response_
<Line>7</Line>
            </EndPosition>
            <StartPosition>
              <Column>16</Column>
              <Line>3</Line>
            </StartPosition>
          </member>
        </MatchedStatements>
        <MissingContextValues/>
        <EvalResourceName>{{eval.resourceName}}</EvalResourceName>
        <EvalDecision>{{eval.decision}}</EvalDecision>
        <EvalActionName>{{eval.actionName}}</EvalActionName>
      </member>
      {% endfor %}
    </EvaluationResults>
  </SimulatePrincipalPolicyResult>
  <ResponseMetadata>
    <RequestId>004d7059-4c14-11e5-b121-bd8c7EXAMPLE</RequestId>
  </ResponseMetadata>
</SimulatePrincipalPolicyResponse>""".replace(
    "__xmlns__", XMLNS_IAM
)
def apply_patches():
    
    aws_managed_policies.extend(
        [AWSManagedPolicy.from_data(k, v) for k, v in ADDITIONAL_MANAGED_POLICIES.items()]
    )
    if "Principal" not in VALID_STATEMENT_ELEMENTS:
        VALID_STATEMENT_ELEMENTS.append("Principal")
    def _validate_resource_syntax(statement, *args, **kwargs):