Sorry for the non-minimal repro, this is as far as I was able to take it for now. Consider the following Stack script, with uses LTS 10.7, which uses network-2.6.3.3.
#!/usr/bin/env stack
-- stack --resolver lts-10.7 script
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai.Handler.Warp
main :: IO ()
main = testWithApplication (pure undefined) $ \_ -> pure ()
As expected, this exits immediately. However, if you change this to LTS-10.8 (which uses network-2.6.3.4), it will hang indefinitely on Windows. This regression has caused the Yesod test suite to fail, see yesodweb/yesod#1523.
I'm only guessing that this is a change in asynchronous exception behavior based on looking at the diff between 2.6.3.3 and 2.6.3.4, it could be something else at play.