If you start dragging the client window to a new size, the session stops updating. It won't resume until you release the mouse button. This can be seen on Windows and macOS, but not on Linux. Unclear what is going on, but it seems to be some FLTK issue. It locks up somewhere in Fl::wait() when this happens. It still fires FLTK events, though, e.g. calling Fl_Window::resize(). But it doesn't monitor sockets anymore, so we don't get an event that there is more data from the server.
For Windows at least, this appears to be fundamental to the OS. Interacting with the window frame starts a modal process, where control isn't returned to the application. There is some discussion about it here: https://stackoverflow.com/a/18043461 It also references Microsoft's documentation: https://learn.microsoft.com/en-gb/windows/win32/winmsg/wm-entersizemove
The issue does not appear with our Qt prototype, on either Windows or macOS. So there seems to be a way to work around it. Might not be worth fixing it in FLTK for us, though.