Mac OS X 10.10.3 running out of disk space after sleep / Potential memory leak?
The purpose of the sleepimage is to store the contents of RAM if your Macbook's battery is low and is about to turn off completely (what Apple call "hibernate"). As such it can be equal in size to the amount of RAM in your Mac. So on your Macbook with 16GB of RAM it could be 16GB in size, which would go a long way to explaining how your Mac with 20GB of free space could quickly fill up. You can check the size of the sleepimage by typing ls -lh /private/var/vm/sleepimage in the Terminal. You can also delete it at any time with sudo rm /private/var/vm/sleepimage as your Mac will just recreate it as needed.

About your Safari use... "a dozen windows open with 1 to 25 tabs in each"...

Have you heard the famous joke about the guy who goes to his Doctor and says "My arm really hurts when I do this" and his Doctor says "Well, don't do that."?

There is another slightly less famous joke about a guy who goes to his Apple Genius and says "My Mac really hurts when I open over a hundred tabs in Safari." and his Apple Genius says "Well don't open over a hundred tabs in Safari."

I might have made that last one up, but it sounds like good advice. You might want to get into the habit of closing tabs and using a bookmarking service like Pinboard or Instapaper.

If you have 16GB of RAM and the most commonly used applications on your Macbook are Safari and Mail, your Mac shouldn't be using a significant amount of swap files. Unless of course you have 100+ tabs open in Safari. You can check the amount and size of swapfiles on your Macbook with ls -lh /private/var/vm/ in a Terminal window. Note that they are in the same place as the sleepimage, but you can't delete them. If you reboot your Macbook it should clear them up itself.

Something else to try is running Etrecheck on your Macbook. It will identify a lot of the third-party extensions/plugins on your Mac, including Internet plugins. I'd start with removing the ones you no longer need or don't recognise.