My current rig could count those 4 billions in 30 ms or less. That's less than usb handshake to xfer the new payload will take in average.
... so transfer 1,000 headers with different extranonces in one handshake. Or don't handshake every time. Or modify the firmware that speaks whatever mining protocol you're sending at it to do the increment-extranonce-and-recompute-the-merkle-root-thing itself.
All of this discussion is useless; even if you could convince us core developers that we need A HARD FORK RIGHT THIS VERY MINUTE! there is absolutely zero chance we could make that happen before the ASICS start shipping.
So: plan accordingly.
Yes - plan ... that's the point of this thread ... but not of the "We can't ever do a hard fork" devs
... and that your post clearly shows a lack of understanding 'planning'.
Plan for a future hard fork to allow a 2nd version block header.
The issue is obvious, the cause is obvious, the path to ultimately fix it is obvious, but then you make this stupid statement
"A HARD FORK RIGHT THIS VERY MINUTE"
... who said that? (other than you)
Though - as has already been pointed out - this issue came up 2 years ago ... yeah a lot of foresight back then ignoring it
No doubt nothing was learned from that mistake.