I think-
You are using threads that are not managed by Flink.
The record never gets flushed to the downstream buffer due to thread not managed by flink.
The downstream operator appears “stuck,” which is exactly what you described.