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/main/java/org/elasticsearch/datastreams/DataStreamIndexSettingsProvider.java
dummyPartitionSize == 1 ? 1 : dummyPartitionSize + 1
        );
        int shardReplicas = allSettings.getAsInt(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 0);
        var finalResolvedSettings = Settings.builder()
            .put(IndexMetadata.SETTING_VERSION_CREATED, IndexVersion.current())
            .put(allSettings)
            .put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, dummyShards)
            .put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, shardReplicas)
            .put(IndexMetadata.SETTING_INDEX_UUID, UUIDs.randomBase64UUID())
            
            .put(IndexSettings.MODE.getKey(), IndexMode.STANDARD)
            .build();
        tmpIndexMetadata.settings(finalResolvedSettings);
        
        try (var mapperService = mapperServiceFactory.apply(tmpIndexMetadata.build())) {
            for (var mapping : combinedTemplateMappings) {
                mapperService.merge(MapperService.SINGLE_MAPPING_NAME, mapping, MapperService.MergeReason.INDEX_TEMPLATE);
            }
            List<String> routingPaths = new ArrayList<>();
            for (var fieldMapper : mapperService.documentMapper().mappers().fieldMappers()) {
                extractPath(routingPaths, fieldMapper);
            }
            for (var template : mapperService.getAllDynamicTemplates()) {
                if (template.pathMatch().isEmpty()) {
                    continue;
                }
                var templateName = "__dynamic__" + template.name();
                var mappingSnippet = template.mappingForName(templateName, KeywordFieldMapper.CONTENT_TYPE);
                String mappingSnippetType = (String) mappingSnippet.get("type");
                if (mappingSnippetType == null) {