Yes, the queries you set up under Reports/Activity/FlexQueries (website's old 'classic' GUI) can only return data from yesterday and before. But these are not the only ones you can setup. The ones under Reports/TradeConfirmations/FlexQueries return all trades of today if you specify it (as the name might already suggest). Not sure how long it actually takes until fills are available (the docs say nothing), think I never actually downloaded 'immediately' in the sense of like 'right away'. But I never missed anything (the only disadvantage is that trade confirmations cannot return fx rates to your base currency, while the first kind of reports can. But you will be able to live without this).
Just if you wanted to play with it: tweaking line 170 in your gist (from "for fill in ib.fills():" to possibly something like "for fill in ib_insync.flexreport.FlexReport(token=xxxxx, queryId=xxxx)" might already do most of the trick.