I have this exact setup, and I use roles / schema names that match so the $user var works with the search path when I set role as my application user.
> When search_path contains “$user”, does it refer to session_user or current_user ?
It uses current_user, not session_user. Works perfectly with set_role for me.