Inside a an Ansible Jinja2 template I\'m trying to set a \"default\" value which also has a variable in it but it\'s printing out the literal rather than interpolating it.
Inside Jinja2 expression use Jinja2 syntax. You should concatenate strings to a variable value:
homedir = {{ hostvars[inventory_hostname]['instances'][app_instance]['homedir'] | default("/home/" + app_instance + "/airflow") }}