I just want to clarify some things. Lets say the receiver advertises a window of 2000 bytes. The sender sends a 1500 bytes and receives an ack from receiver with window size 100. The ack does not acknowledge the 1500 bytes sent. What will the sender do? Will it stop wait until window its unacknowledged bytes become less than receiver window?
So long as both ends are robust, it doesn't much matter. A robust TCP implementation will never shrink a window. A robust TCP implementation will either ignore or accept data outside its window. A robust TCP implementation will transmit at least one byte of data that's outside a zero window periodically. You'd have to break all three of these for anything bad to happen.
So the answer to your question is "probably, but it doesn't much matter".