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
indexMode = null;
            }
            if (indexMode != null) {
                if (indexMode == IndexMode.TIME_SERIES) {
                    Settings.Builder builder = Settings.builder();
                    TimeValue lookAheadTime = DataStreamsPlugin.LOOK_AHEAD_TIME.get(allSettings);
                    final Instant start;
                    final Instant end;
                    if (dataStream == null || migrating) {
                        start = DataStream.getCanonicalTimestampBound(resolvedAt.minusMillis(lookAheadTime.getMillis()));
                        end = DataStream.getCanonicalTimestampBound(resolvedAt.plusMillis(lookAheadTime.getMillis()));
                    } else {
                        IndexMetadata currentLatestBackingIndex = metadata.index(dataStream.getWriteIndex());
                        if (currentLatestBackingIndex.getSettings().hasValue(IndexSettings.TIME_SERIES_END_TIME.getKey()) == false) {
                            throw new IllegalStateException(
                                String.format(
                                    Locale.ROOT,
                                    "backing index [%s] in tsdb mode doesn't have the [%s] index setting",
                                    currentLatestBackingIndex.getIndex().getName(),
                                    IndexSettings.TIME_SERIES_END_TIME.getKey()
                                )
                            );
                        }
                        start = IndexSettings.TIME_SERIES_END_TIME.get(currentLatestBackingIndex.getSettings());
                        if (start.isAfter(resolvedAt)) {
                            end = DataStream.getCanonicalTimestampBound(start.plusMillis(lookAheadTime.getMillis()));
                        } else {
                            end = DataStream.getCanonicalTimestampBound(resolvedAt.plusMillis(lookAheadTime.getMillis()));
                        }
                    }