Here's another thing from your post worth mentioning: the button states (clickable/greyed out) do not care about your energy at all. They only consider the cooldown time (which is represented much more accurately due to it being second-bound, not minute-bound).
I don't think this is correct, for me at least. If I have zero energy, but my shield generator has no cooldown time on it and I go to generate my shields, the button is disabled. If I wait for the energy to rise above 50, 60, 70, up to 100, the button stays disabled until I refresh the page.