How can I always have the node title display on top of a background image?
There is several ways to solve this 

1 make your own module

to do what you described 

2 add theme templates

for each content type as you described

3 Use background_image module

The module is available for Drupal 8 promises to do just this (I meant to use it but have not actually)

According to the the project description provides a way to insert token values


  Token - Provides a way to view which tokens are available to use when
  adding overlay text for a background image.


So you can probably use it with a field token to accomplish what you need