How to force child page added to book outline to top or bottom; update outline without clearing cache
As an answer to the first question above about updating a book outline display without clearing the cache:

Add the following to a custom .theme file (see drupal.org/docs/8/theming) to add a tag to the cached book navigation block:

function YOURTHEME_preprocess_block(&amp;$vars)
{
  if ($vars['plugin_id'] == 'book_navigation') {
    $vars['#cache']['tags'] = ['node_type:{content-type}'];
  }
}


Then add the following to a custom .module file (see drupal.org/docs/8/creating-custom-modules) to flush the cached book navigation block whenever a node of the specified content type is changed or deleted:

use Drupal\node\NodeInterface;
use Drupal\Core\Cache\Cache;

function YOURMODULE_node_presave(NodeInterface $node)
{
  if ($node-&gt;getType() == '{content-type}') {
    Cache::invalidateTags(['node_type:{content-type}']);
  }
}

function YOURMODULE_node_delete(NodeInterface $node)
{
  if ($node-&gt;getType() == '{content-type}') {
    Cache::invalidateTags(['node_type:{content-type}']);
  }
}


Credit to @oknate for the second half of this answer. See How do you clear cache on a block when node of certain bundle added or updated? for more detail.