This is a nice intro how to analyze wait/ready issues with WPA. I have spent a long time in WPA as well, and found that issues keep coming back so I tried to automate data extraction and analysis. The resulting tool is ETWAnalyzer: https://github.com/Siemens-Healthineers/ETWAnalyzer
It has one twist with regards to Wait/Ready times. It does not blindly sum up all Wait/Ready times per thread like WPA, but instead it sums only non overlapping Wait/Ready times. This means if you have recorded for 10s and your method has 10s of Wait/Ready times then you have too many threads. That should give some hints how to optimize multithreading applications, by looking at the sum of non overlapping Wait/Ready times.
To use you just need to extract the summary data into a Json file with
ETWAnalzyer -extract all -fd xxx.etl -symserver MS
Then you can query for your or all processes
ETWAnalyzer -dump CPU -fd Extract\xxx.json -processname threadthrash -sortby wait -topnmethods 50
or if you want to check a specific method add -methods *CritThread*.
Its true power is that you can query a folder of extracted ETL files within seconds and export the data to a CSV file with -csv xxx.csv for further analysis, if the console output is too much. But for many issues the console output with the supplied filters is already enough.