In your tax query, you’re searching for a string instead of a variable, the only time it will match currently is if the term is literally “$page_slug”. You should remove the single quotes around the $page_slug
to have it parsed as a variable, so:
'terms' => '$page_slug'
should be:
'terms' => $page_slug,