Three bugs in the async sliding-window decoder caused segfault during
Qt event loop shortly after startup:
1. Missing monitoring guard: async decode timer fired before audio
input was active, calling decoder with uninitialized data.
Fix: added `if (!m_monitoring) return;` check.
2. Wrong Fortran hidden length: `(FCL)(100*80)` passed 8000 as the
character length for `outlines(100)`, but Fortran expects 80
(per-element length). This caused `outlines = ' '` to write
800KB instead of 8KB — massive stack/heap corruption.
Fix: changed to `(FCL)80`.
3. Missing null-terminator: Fortran fills entire outlines array with
spaces (0x20). asyncDecodeDone() used `m_asyncMsg[i][0]` as a
null-terminator check, so it processed 100 garbage "messages"
per 750ms tick, corrupting program state.
Fix: added `m_asyncMsg[nout][0] = 0` after decode returns.