How many words are there?
JavaScript, 275 bytes

a=&gt;(a.match(/[^aeiouys]/g)||[])[L='length']&lt;a[L]*.85|0&amp;&amp;[...Array(1&lt;&lt;(n=(a=[...a])[L])*--n/2)].map((_,b)=&gt;a.slice().sort(_=&gt;(b/=2)*2&amp;1?1:-1).join``).filter((a,b,c)=&gt;c.indexOf(a)==b&amp;&amp;/[aeiouy]/[t='test'](d=a.replace(/[cst]h/,1))&amp;!/[aeiouy]{3}/[t](d)&amp;!/[^aeiouys]{4}/[t](d))[L]


Try it online