I would use NFS instead of SMB. you will have all sorts of problems when you use smb, primarily permissions.
Also I wouldn't put all the data on the nas. What containers do you want to run? If you try to run something like nextcloud, you can just map your data directory to your nas. Databases, configfiles and so on aren't that big usually and your application will be a lot faster when those are on your local storage instead of the nas. For actually mapping your containers data to your nas you can just use bind mounts.
For the startup, you can set restart:never in your compose file and start the container with a script after bootup where you out something like 'sleep 120' in the beginning.