Currently the `index.look_ahead_time` index setting controls the `index.time_series_end_time` index setting when rolling over a tsdb data stream. The `index.look_ahead_time` setting default to 2 hours, which means the by default the `index.time_series_end_time` index setting of the new backing index will be 2 hours later than the `index.time_series.start_time` index setting. The the `index.time_series.start_time` and `index.time_series_end_time` index settings  control what `@timestamp` are allowed to be indexed.

Additionally the `index.look_ahead_time` setting is used to generate the `index.time_series.start_time` and `index.time_series_end_time` index settings when creating a new data stream for the first backing index. Based on the defaults of `index.look_ahead_time` setting, the  `index.time_series.start_time` index is set to current time - 2 hours and the `index.time_series_end_time` index setting is set to current time + 2 hours.

However for indexing the initial data setting the `index.time_series.start_time` index setting to 2 hours in the past sometimes creates too small time window. For example because data gets indexed starting from midnight that day. 

The idea is to add a `index.look_back_time` setting that controls how to generate the `index.time_series.start_time` index setting when creating the data stream (for the first backing index). This allows for creating a first backing index that accepts data that is earlier then current time - $index.look_ahead_time, without affecting how `index.time_series.start_time` and `index.time_series_end_time` index settings are generated during rollover.

I think a good default for the `index.look_back_time` setting would be 24 hours. Meaning that by default the `index.time_series.start_time` index setting for the first backing index of a new data stream would be current time - 24 hours.

Relates to elastic/integrations#7345
modules/data-streams/src/javaRestTest/java/org/elasticsearch/datastreams/TsdbDataStreamRestIT.java
request.setJsonEntity(DELEGATE_TEMPLATE);
        assertOK(client().performRequest(request));
        
        assertTsdbDataStream();
    }
    private void assertTsdbDataStream() throws IOException {
        var bulkRequest = new Request("POST", "/k8s/_bulk");
        bulkRequest.setJsonEntity(BULK.replace("$now", formatInstantNanos(Instant.now())));
        bulkRequest.addParameter("refresh", "true");
        var response = client().performRequest(bulkRequest);
        assertOK(response);
        var responseBody = entityAsMap(response);
        assertThat("errors in response:\n " + responseBody, responseBody.get("errors"), equalTo(false));
        var getDataStreamsRequest = new Request("GET", "/_data_stream");
        response = client().performRequest(getDataStreamsRequest);
        assertOK(response);
        var dataStreams = entityAsMap(response);
        assertThat(ObjectPath.evaluate(dataStreams, "data_streams"), hasSize(1));
        assertThat(ObjectPath.evaluate(dataStreams, "data_streams.0.name"), equalTo("k8s"));
        assertThat(ObjectPath.evaluate(dataStreams, "data_streams.0.generation"), equalTo(1));
        assertThat(ObjectPath.evaluate(dataStreams, "data_streams.0.template"), equalTo("1"));
        assertThat(ObjectPath.evaluate(dataStreams, "data_streams.0.indices"), hasSize(1));
        String firstBackingIndex = ObjectPath.evaluate(dataStreams, "data_streams.0.indices.0.index_name");
        assertThat(firstBackingIndex, backingIndexEqualTo("k8s", 1));
        var indices = getIndex(firstBackingIndex);
        var escapedBackingIndex = firstBackingIndex.replace(".", "\\.");
        assertThat(ObjectPath.evaluate(indices, escapedBackingIndex + ".data_stream"), equalTo("k8s"));
        assertThat(ObjectPath.evaluate(indices, escapedBackingIndex + ".settings.index.mode"), equalTo("time_series"));
        String startTimeFirstBackingIndex = ObjectPath.evaluate(indices, escapedBackingIndex + ".settings.index.time_series.start_time");
        assertThat(startTimeFirstBackingIndex, notNullValue());