Serial XOnXOff handshaking
As @pjc50 says in a comment, Xon/Xoff is flow control, not block-control.
If a receive buffer is full, the device with that buffer sends &quot;Xoff&quot; to the other device to make it stop talking for a while. So your putty will send &quot;Xon&quot; when initiating, then only send &quot;Xoff&quot; when the port's buffer is full, after which it sends &quot;Xon&quot; again when there's room for new data. It's likely your Atmel is much slower in handling data than your PC, so as an effect it is unlikely the PC will ever decide to send Xon/Xoff to the Atmel on its own.
That said, I do sometimes write logger firmware that &quot;pumps&quot; out data at 1MBit+ and then windows specifically will start whimpering. I have never tried whether it then sends Xon/Xoff, as I often then migrate to direct USB communication, becuase I need the stream, not some &quot;chopped&quot; simile. In Linux, however, I have not had any buffer issues up to 5Mbit on serial interfaces.
EDIT:
As a side note: I have seen many worse things in the world than using Xon/Xoff for handshaking rather than flow control, so comparatively you wouldn't be that bad. But semantically you should use other special characters for block-handshaking procedures. Such as SOH, STX, ETX, EOT, ENQ, ACK, NAK, SO, SI, CAN, EM.
You are also allowed in Ascii to use DC1 through DC4 for whatever you like.
See the Ascii Control Table for more fun names and numbers.