Your selection now gives the cheapest 2.7 hours from today and the first 8 hours tomorrow. So the total hours number of hours which are checked are 24 + 8 = 32 hours.
It you only want tomorrow, you need to exclude today, so add include_today=false
Do note that you need to use a trigger based template sensor or automation to make sure the datetime is known after midnight (when you actually need it). Otherwise it will start looking for the data of the next day, which won’t be available yet
update:
If you want to create the sensor as a template helper in the GUI, you can do this:
{% set today = now() < today_at('16:00') %}
{% set start = today_at('00:00') + timedelta(days=0 if today else 1) %}
{% set end = today_at('08:00') + timedelta(days=0 if today else 1) %}
{% from 'cheapest_energy_hours.jinja' import cheapest_energy_hours %}
{{ cheapest_energy_hours(sensor='sensor.zonneplan_current_electricity_tariff', hours=2.7, start=start, end=end) }}
This will show the best time for today until 16:00, after that it will show the best time for tomorrow. After 16:00 the prices for tomorrow should be available.