This was an attempt to fix what was most likely a dead lock issue though only one of the changes was required to fix the issue I will be keeping a lot of the other changes made
- modify windows send msg code to prevent locked code
- change max file sem to producer/consumer asyncio code with max concurrency
- limit max_currency to *10 sems or max_file
Other changes
- add some more logs for download progress
- add a timeout for stdout logger thread
- move logs to be processed quicker in multiprocess mode
- add SHOW_DL_CHUNKS const to show logs for download chunks without needing trace
- add more timeouts for MPD requests
- return write_away if max_file or min_file forces a skip
- improve session manager management of signatures, and management of exceptions