Without wishing to comment further with conditions and triggers I thought I would comment on your pistons. (If you don’t mind).
Instead of 2 IF statements, use 1. Change your first IF to a Time Is Between.This means that the piston can run anytime in that window should it be evaluated and not only at 2 fixed times.
Time is between 45 minutes to Sunset and 15 minutes past sunrise.
White bulb 1
As you are mixing conditions and triggers I always take a belt and braces approach to make sure everything subscribes as I want it to.
Click on your 3 IF statements individually and the the settings cog at the bottom.
Change each IF statement to ALWAYS Subscribe.