Muitas dessas coisas parecem estar fora do que é acessível diretamente dos dmvs. Tenho certeza que alguém mais informado do que eu pode te dar respostas melhores.
Isso é o mais perto que eu poderia chegar.
SELECT des.program_name
, des.login_name
, des.host_name
, COUNT(des.session_id) [Connections]
FROM sys.dm_exec_sessions des
INNER JOIN sys.dm_exec_connections DEC
ON des.session_id = DEC.session_id
WHERE des.is_user_process = 1
AND des.status != 'running'
GROUP BY des.program_name
, des.login_name
, des.host_name
HAVING COUNT(des.session_id) > 2
ORDER BY COUNT(des.session_id) DESC
Isso agregará suas conexões por login e de cada host e aplicativo. Isso lhe dará uma ideia de como suas conexões estão sendo agrupadas no momento. Se você souber seu valor máximo de imediato, poderá subtrair as conexões dele e isso poderá fornecer o número de conexões restantes em cada pool.