Why would adding a template file to a child theme cause an error in template-loader.php?

Your initial idea is correct, WordPress shouldn’t look for index.php if it finds category.php for a category archive. However, that may change if you don’t have file permission and ownership set properly, or if FileSystem cache is messing with file_exists() check.

Follow these steps:

  1. Make sure your child theme files are readable by the web server user. Check both file permission and ownership.

  2. Check to see if the child theme is coupled properly with the parent theme and it can get templates from parent theme if any specific template is absent in the child theme.

  3. In wp-config.php use clearstatcache(); function (before require_once(ABSPATH . 'wp-settings.php');) to clear filesystem cache.

    In case you were adding & removing those files while testing and filesystem caching those files, clearstatcache(); will help you clearing those filesystem cache that may confuse WordPress core. Once done, remove clearstatcache(); call.