Resolution
Enabling deploy on save now in the Agent Setups section in Manage Jenkins->Confifure System causes the hang to occur.
If you need this feature of the Agent Setup plugin the hang will occur, but it does eventually complete.
Generating a Support Bundle while the hang is occurring and reviewing the thread-dump.txt file in the
nodes/master directory will show a thread with stack trace similar to:
"Handling POST /jenkins/configSubmit from xx.xxx.xx.xx : http-bio-8543-exec-14 / waiting for hudson.remoting.Channel@3e5c3dac:obucds309p.dev.ch3.s.com" #63527 daemon prio=5 os_prio=0 tid=0x00007ffaf003d800 nid=0x6c2f in Object.wait() [0x00007ffaf4820000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at hudson.remoting.Request.call(Request.java:147) - locked <0x00000006c356ba48> (a hudson.remoting.UserRequest) at hudson.remoting.Channel.call(Channel.java:780) at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:250) at com.sun.proxy.$Proxy75.join(Unknown Source) at hudson.Launcher$RemoteLauncher$ProcImpl.join(Launcher.java:992) at hudson.Launcher$ProcStarter.join(Launcher.java:389) at org.jenkinsci.plugins.slave_setup.SetupDeployer.executeScript(SetupDeployer.java:136) at org.jenkinsci.plugins.slave_setup.SetupDeployer.deployToComputer(SetupDeployer.java:95) at org.jenkinsci.plugins.slave_setup.SetupDeployer.deployToComputers(SetupDeployer.java:156) at org.jenkinsci.plugins.slave_setup.SetupConfig.configure(SetupConfig.java:62) at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:2923) at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:2886) - locked <0x00000006cb2ada18> (a hudson.model.Hudson)