Currently txs are on average 250 bytes... but let's say that we can somehow get that down to 100 bytes... (I've see discussion on several ways of doing this).
This is where it all starts being flawed. That's not the average transaction size, not even close.
Source.
In particular, the average transaction size has increased from 450 bytes in Jan 2013 to almost 600 bytes in Oct 2015
What would be the big tech constraint in 2020 preventing 14MB blocks?
I can't answer this as your calculations are flawed due to using a wrong average. If you re-do them, then we might be able to talk about it.