I should change the fist script.
it does does NOT go entering to interrupt call back often.
I overwrite ws_upgrade_uart_init() and ws_upgrade_uart_interrupt_callback, then the problem disappeared.
I'm not sure the root cause still.
Diff has no issue before and after.
If I can get the root cause, I'll share