Why a single stalled disk read froze the whole system: and the fix: move blocking work off the event loop so a slow disk can only stall its own thread.
An async system runs on one thread that never blocks. When file reads ran directly on that event loop and a network share hung, everything froze at once. Moving the disk work to a thread pool means a slow disk stalls only itself.