You're right, but you could reduce it by a month or so. For example the electoral commission doesn't necessarily need 12 weeks to test the question, you could also change the campaigning period at the moment it is a minimum of 10 weeks (that includes campaigns to the electoral commission for official designation), but laws can be amended when the legislation for a referendum is put to parliament, parliament agrees the date, timings etc with each referendum.
But it doesn't matter Boris just says we propose to do this, if the EU only give an extension up until the end of Jan 2020 (which is the best guess at the moment) parliament could easily vote to make sure we had a referendum before then Then we have GE and Ref in December just before Xmas.
To be fair we've only had 3 in my life time 1975 on EEC membership, 2011 on PR and of course 2016 and each time the rules have been different. You never know it could happen, predicting anything is impossible at the moment, events change everything so quickly!