This probably needs testing with zigpy-zigate and ZiGate hardware on Linux and Windows OS to confirm working first, but FYI:
pyserial-asyncio version 0.6 has now finally been released with a fix for Windows OS:
https://github.com/pyserial/pyserial-asyncio/releases/tag/v0.6
https://pypi.org/project/pyserial-asyncio/#history
pyserial-asyncio 0.6 includes "fix multiple writers race on windows"
pyserial/pyserial-asyncio#70
Which solves "Never transmits on Windows in version 0.5" with version 0.6 (version 0.5 will still always have this issue).
pyserial/pyserial-asyncio#69
The backstory is pyserial-asyncio version 0.5 is broken/blacklisted on Windows OS and that v0.5 should still be blacklisted, but the restriction should be relaxed so can use pyserial-asyncio versions both older/lower and newer/higher then version 0.5 now:
requires = [
'pyserial>=3.5',
'pyserial-asyncio!=0.5; platform_system=="Windows" # 0.5 brake writes on Windows
``