### Is there an existing issue for this?

- [X] I have searched the existing issues

### Enhancement description

Before 3.x, SQS would use the hostname and port of the incoming request to determine the URL to return, so the URL would work both if it was queried from the host or from inside the docker (compose) network. This was a critical and incredibly useful feature for us. While we have tried to not depend on it by providing environment variables that the users of our tool should use, some teams depend on third party libraries that query the URL and won't have the capacity to replace them. 

Additionally, we have the requirement of running with published random ports and there are use cases that get the URL both from the host and the docker network. While we will be looking into workarounds and try to find a way to still upgrade (since the [AWS SDK compatibility fix](https://github.com/localstack/localstack/issues/8267) is also critical) I don't think it's possible to have something that works in both use cases (host and network).

Honestly, I think it was awesome that LocalStack did this and I would have kept it as the default, so I hope you consider and decide bringing it back, maybe as a `SQS_ENDPOINT_STRATEGY` option.

### 🧑‍💻 Implementation

_No response_

### Anything else?

https://localstack-community.slack.com/archives/CMAFN2KSP/p1700665707589479
"""
    A task created by the ``StartMessageMoveTask`` operation.
    """
    
    source_arn: str
    destination_arn: str
    max_number_of_messages_per_second: int | None = None
    
    task_id: str
    status: str = MessageMoveTaskStatus.CREATED
    started_timestamp: datetime | None = None
    approximate_number_of_messages_moved: int | None = None
    approximate_number_of_messages_to_move: int | None = None
    failure_reason: str | None = None
    cancel_event: threading.Event
    def __init__(
        self, source_arn: str, destination_arn: str, max_number_of_messages_per_second: int = None
    ):
        self.task_id = long_uid()
        self.source_arn = source_arn
        self.destination_arn = destination_arn
        self.max_number_of_messages_per_second = max_number_of_messages_per_second
        self.cancel_event = threading.Event()
    def mark_started(self):
        self.started_timestamp = datetime.utcnow()
        self.status = MessageMoveTaskStatus.RUNNING
        self.cancel_event.clear()
    @property
    def task_handle(self) -> str: