A menos que haja alguma limitação muito antiga com o Get-ADUser que não conheço, não deve haver um problema em usá-la para uma consulta que retorne mais de 5k usuários. Acabei de testá-lo a partir de uma caixa 2008 R2 executando o PowerShell 4 e minha consulta Get-ADUser retornou quase 7k usuários com nada além de um parâmetro -Filter * e -SearchBase. Também não estou claro por que você acha que o UAC tem algo a ver com a capacidade de filtrar usuários habilitados.
Independentemente disso, você não precisa realmente de um script recursivo para essa tarefa. Há um filtro LDAP que você pode usar para retornar a lista aninhada completa dos membros de um grupo chamada LDAP_MATCHING_RULE_IN_CHAIN .
# first, get the DN of the group
$groupDN = (Get-ADGroup $Name).DistinguishedName
# now use it to get the nested members
Get-ADUser -LDAPFilter "(memberOf:1.2.840.113556.1.4.1941:=$groupDN)" -Property SamAccountname,Enabled | select ObjectClass,Name,SamAccountname,DistinguishedName,enabled
# alternatively, you can filter out the disabled users in the same query
Get-ADUser -LDAPFilter "(&(memberOf:1.2.840.113556.1.4.1941:=$groupDN)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))" -Property SamAccountname,Enabled | select ObjectClass,Name,SamAccountname,DistinguishedName,enabled