make tail wait for a file to exist

This works:

while ! tail -f bar/somefile.log ; do sleep 1 ; done

You're not mentioning which OS you need it for, but tailon linux has the --retry and --follow options that will do just that;

tail --retry --follow=name somefile.log

Create the file first:

touch somefile ; tail -f somefile