Looks like there is a better way now: Org Development Model with VS Code
This link provides detailed instructions for using the "SFDX: Create Project with Manifest" command which enables connection to a regular sandbox (not a scratch org). This approach gives the ability to push and pull metadata without going through a long multi-step process on every code edit.
This still requires two steps (save file locally and push the entity to Salesforce), but eliminates the requirement to zip, convert and deploy on every save.
If you are receiving errors after following the steps in the above link, here are some additional resources:
Error: “UNSUPPORTED_API_VERSION: Invalid Api version specified on URL.” can be addressed by manually overriding the api version within SFDX itself (separate from "sfdx force --version" and "sfdx plugins" commands). In order to manually set SFDX version, use following command: "sfdx force:config:set apiVersion=44.0" or whatever is appropriate api version. See “UNSUPPORTED_API_VERSION: Invalid Api version specified on URL.”
Also, if you are receiving the "EISDIR: illegal operation on a directory, read" error, this appears to be due to a race error when retrieving entities stored in sub folders such as Lightning components. This can be addressed by removing items that use subfolders in your package file for the initial retrieve and then adding them back in per "EISDIR: illegal operation on a directory, read"