I have been tinkering with this a bit at home.
Although the "noauto" option is on, it appears my windows shares do in fact automount, since they show up as folders on the desktop after boot with no software attempting to access them. This works consistently.
Also, if my windows share computer is not on at time of boot, making shares unavailable, it not only takes longer to boot (expected), but my external USB drive does not auto-mount as it should, and it will not auto-mount even when unplugging/plugging in after Linux is loaded. If I comment out the relative fstab lines and reboot the USB drive works as it should.
I am using the latest Mint Cinnamon 18.1 64bit with all updates and default kernel.
That's odd; I don't use Mint, and Gnome doesn't have a "desktop" that shows files, but my guess would be that your OS or file manager are essentially polling all drives at login, which is auto-mounting the shares at login, but not necessarily at boot. I can think of a few ways to test that, but in any case that part sounds as though it's still working more or less as intended.
For the boot delay/failure to remount subsequently that's tougher. For starters it shouldn't be delaying boot at all in any meaningful way (unless there's some odd interaction with trying to mount the USB drive). If you have an fstab entry for the USB drive try adding these two options: x-systemd.device-timeout=2,nofail
Those will tell the os not to worry about failing to mount it and try again later, and to only wait 2 seconds or so if it's not present. If that resolves the boot delay when the smb shares are missing, it's clearly an interaction between mounting the usb drive and the smb shares.
If you haven't added the usb drive to the fstab, try adding those options to the samba mounts. It should at least speed up the failure case.
For the usb drive failing to mount, that's indeed very odd. Do you have it setup in the fstab to mount somewhere specific? Or is the OS just auto-mounting it? I ask because if the two mountpoints overlap that would obviously cause problems (i.e. if they both mount to the same point, or if the USB drive's mountpoint is inside the smb shares mountpoint). When the USB drive is mounted successfully, where is it mounted? (if you're not sure how to answer that question, the output of the "lsblk" command when the USB drive is mounted should tell us)