OK, I have solved this problem in the following manner:
I call the following batch file with %1=<AppPoolName>, %2=<the /lm/W3SVC website numeric value>
batch file duplicate.bat:
=======================================================================
set msdeploy="C:\program files\Microsoft web deploy\msdeploy.exe"
set master=http://web01-d:81/msdeploy
%msdeploy% -verb:sync -source:metakey=/lm/W3SVC/AppPool/%1,metaDataGetInherited=true,computerName=%master% -dest:metakey=/lm/W3SVC/AppPools/%1
%msdeploy% -verb:sync -source:metakey=/lm/W3SVC/%2,metaDataGetInherited=true,computerName=%master% -dest:metakey=/lm/W3SVC/%2
I do this for each web site/AppPool combo. You have to create the AppPool first, since the web site references it.
Now my problem has changed slightly. We have decided to use a networked Windows storage location for the actual web site files instead of local DAS storage. This means that every site in the web site pool will reference a UNC path to the actual virtual directory. This is good because now I will only need 1 copy of the web site's files for multiple web servers in the pool.
However, I have noticed that the msdeploy command when used to sync a web site as I am doing above copies (or at least verifies consistency) of all the files in the web sites. I really don't need to do this since all the web sites will be sharing the exact same copy of the files. Is there a way (I would guess a manifest setting) to get the above-listed msdeploy web site sync command to not attempt to verify the file contents?