Ainda não sei por que é um problema chamar meu módulo personalizado do dotnet e não do pamtester, mas, para responder à pergunta mais importante: "Como posso construir e / ou configurar meu módulo pam personalizado para me comportar da mesma forma como os módulos pré-existentes do sistema? "
A resposta é que, anteriormente, eu estava vinculando o módulo usando o seguinte:
ld -x --shared -o pam_permit_log_response.so pam_permit_log_response.o
Para corrigir o problema, eu precisava indicar ao vinculador que este é um módulo pam usando o sinalizador -lpam para que a chamada para o link se torne:
ld -x --shared -o pam_permit_log_response.so pam_permit_log_response.o -lpam