We run FreePBX 15.0.16.21 and found that one pgp servers coded in GPG.class.php unavailable for long time and reload process goes very long because of that. This server should be excluded from the servers list or should be a way to exclude buggy servers. Currently we had to comment out this server in sources to fix this.
root@pbx:~# sudo -u asterisk gpg --refresh-keys --keyserver keyserver.pgp.com -vvvvvvvvvvvvvvv
gpg: using character set ‘utf-8’
gpg: refreshing 3 keys from hkp://keyserver.pgp.com
gpg: keyserver refresh failed: Connection timed out
James, thank you for suggestion. I know much more about freepbx reload process. Real issue was in execution “fwconsole util signaturecheck” while reloading. For some reason Apache waits in our case for execution completion of all exec() child processes.
We found issue in installed php modules version, reinstalled it and restarted Apache. Now reload process ges fine.