must pause is a bit ambiguous.

How about:
When a stream window size is less than or equal to
0, the sender MUST NOT send a data frame, unless it is a zero-length data frame with the FIN (or whatever it is called) flag set.

As an aside, we could allow zero-length data frames without a FIN to indicate that the stream is blocked (a max of one). We shouldn't put that in now.