What's the most efficient way to get D8 to notice changes to .yml files? I'm taking my first steps with Drupal 8, starting with a custom theme. As a result I'm making incremental changes and testing them.

I've found that in order to be able to tweak CSS you have to turn off aggregation. The normal: change css, drush cc css-js, reload page workflow doesn't work unless aggregation is disabled.

But I'm also having difficulty with Drupal not picking up changes to the yaml files, e.g. add css to the THEME.libraries.yml file - no drush cc ... command has any effect. The only thing I've found to work is drush cr (or drupal cache:rebuild) which adds about 20-30s delay in my workflow.

Is there a quicker workflow for development?
In your development.services.yml file turn twig cache off and debug true. This will assist in theming, twig files are also cached.

Secondly, I think the command you want for yml changes is drush cr. However if they are install yml files, (I believe) they'd only register when a theme is enabled/uninstalled like modules are. So if that's the case you'd need to do that. I've also needed to use cr with libraries.yml changes.

Third, what VM are you using? I can run drush cr and it only takes ~5 seconds on the DrupalVM stack.