The boost timer is just visual, the actual mechanics behind the boost and the visual number it shows are actually calculated a bit differently. The visual indicator is instant, it gives you a representation of how long it will take something to finish if the boost was on until the upgrade finishes. The boosts are just a multiplier to the timer.
So say you have a 100% increase building speed, that means they work 2x faster.
If you have a building that takes 1 day, and you use a boost of 100%, it will visually go down to 12 hours. How the boost actually works in the background however is that the build time is still 24 hours, you are just working at a pace of 2 seconds for every 1....it's working 100% faster or 2x the normal (1 second)
If that boost was 6 hours long and 100%, what would happen is the following;
You would see the timer initially go to 12 hours, and tick down at a normal rate to 6 hours
That 6 hours (the time the boost finishes and the time you will see visually) will instead go back up to the time that it actually is suppose to be - in this case, it would be 12 hours (6 hours from normal build time and 6 hours from it being doubled - every second is 2 seconds for the build time). So 6 hours have passed, plus another 100% or x2.0 which is double - so another 6 hours, totalling 12 hours.
If you used another 6 hour boost for 100% speed afterwards;
The time would visually go down to 6 hours from 12 hours, and it wouldnt jump back up because the boost lasted the same - or longer than the building upgrade. Making the visual time you saw, accurate.
This is most noticable when you have a long upgrade and a big boost - So if you boost something by a lot, just a random example, you have a 10 day upgrade and a big boost drops it to 3 days - Then after the boost end, it goes back up to 9 days upgrade. The boost did work, it just never calculated that the boost would end, and instead shows you the time if the boost never finishes.
This isn't a bug, and I hope I answered your question
TLDR; the timer assumes that the boost will last until the upgrade is finished, it doesn't calculate the boost ending early.