xtoolwait é um utilitário que inicia um aplicativo X e aguarda até que ele tenha mapeado sua janela. Em seguida, ele retorna o controle para a sessão original do shell.
Geralmente é usado a partir do arquivo .xinitrc ou .xsession .
Você pode usá-lo no seu script da seguinte forma:
xtoolwait st -n dropdown
pid=$(xdotool search --classname dropdown)
O segundo comando não iniciará a execução até que xtoolwait detecte que st mapeou sua janela. Observe a falta de & na primeira linha (não é necessário). Isso pode oferecer um atraso suficiente para o segundo comando encontrar o PID corretamente.