I have 3 of those locks and they work pretty well.
The DTH I use is:
Z-Wave Schlage Touchscreen Lock
https://github.com/ethayer/lock-manager/blob/master/devicetypes/garyd9/zwave-schlage-touchscreen-lock.src/zwave-schlage-touchscreen-lock.groovy
The SmartApp I use is:
Lock Manager by @ethayer
For auto-locking you might want to look at this:
I would not lock the door immediately after closing. These are the settings I use which work pretty well for me:
One reason not to autolock right away is that it uses battery so it would cut down battery usage if you lock the door yourself when entering. When I leave I always press the Schlage button as I like to hear it close (yeah we all know how 100% reliable ST is ). Also it is super annoying to have to key in the code each time you forgot something…
…anyhow I am slowly moving away from individual smartapps in favor of webCore so even though this smartapp has been quite reliable, I plan on replacing it with a piston for further customization!
I believe all your issues and needs will be resolved with the above DTH and smartapps.
EDIT: Corrected link to DTH (I accidentally linked to the old version, not what I was actually using). Would be nice if DTHs had a github link in their comments section… Thanks @jkp for catching the mistake.