### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Starting the localstack docker using the elasticmq SQS backend results in not being able to send any messages.  Appears to work fine in 0.12.17

### Expected Behavior

Messages should send fine.

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

Run docker with:
```
docker run --rm -it -p 4566:4566 --env SERVICES=sqs --env SQS_PROVIDER=elasticmq --env DEBUG=1 localstack/localstack:0.12.18
```
Execute a simple SQS send:
```
AWS_ACCESS_KEY_ID=x AWS_SECRET_ACCESS_KEY=y aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name foo && aws --endpoint-url=http://localhost:4566 sqs send-message --queue-url "http://localhost:4658/000000000000/foo" --message-body foo
```
results in failure:
```
Unable to parse response (not well-formed (invalid token): line 1, column 0), invalid XML received. Further retries may succeed:
b'{}'
```

### Environment

```markdown
- OS: macOS 11.6
- LocalStack: 0.12.18
```


### Anything else?

I'm pretty sure that commit e38778888534cb6d98f27edaf5af76c1e1d29e06 broke the functionality.  I _think_ the `_process_sent_message` function is assuming something about the response that just isn't true, but I haven't gotten any further in my analysis.

Also, I need to use elasticmq because the moto implementation is just not fast enough.  We've been using an older release (0.11.3), using elasticmq, and I can send and receive 10,000 2K bodies in about 25 seconds, but using 0.12.18 and moto I can only send about 1200 and receive about 450 in those 25 seconds, and the slowdown just isn't acceptable for our integration tests.
req_data_new = dict([(k, v) for k, v in req_data.items() if not k.startswith("Attribute.")])
    i = 1
    for k, v in forward_attrs.items():
        req_data_new["Attribute.%s.Name" % i] = [k]
        req_data_new["Attribute.%s.Value" % i] = [v]
        i += 1
    data = urlencode(req_data_new, doseq=True)
    return Request(data=data, headers=headers, method=method)
def _set_queue_attributes(queue_url, req_data):
    
    if SQS_BACKEND_IMPL != "elasticmq":
        return
    attrs = _format_attributes(req_data)
    
    local_attrs = {}
    for k, v in attrs.items():
        if k in UNSUPPORTED_ATTRIBUTE_NAMES:
            try:
                _v = json.loads(v)
                if isinstance(_v, dict):
                    if "maxReceiveCount" in _v:
                        _v["maxReceiveCount"] = int(_v["maxReceiveCount"])
                local_attrs.update(dict({k: json.dumps(_v)}))
            except Exception:
                local_attrs.update(dict({k: v}))
    QUEUE_ATTRIBUTES[queue_url] = QUEUE_ATTRIBUTES.get(queue_url) or {}
    QUEUE_ATTRIBUTES[queue_url].update(local_attrs)
    forward_attrs = dict([(k, v) for k, v in attrs.items() if k not in UNSUPPORTED_ATTRIBUTE_NAMES])
    return forward_attrs
def _fix_dlq_arn_in_attributes(req_data):