It seems that there's more overhead to the Salesforce CLI when deploying than originally thought, in particular on Windows host machines. As a result, I'd like to use direct APIs as much as possible even in source format projects against non-source tracked orgs.
The first step will be to do as much as possible short of performing an actual source-to-metadata format conversion myself. That means that if you've selected things that can be sent via the Tooling API, IC will already do the right thing. If not and what you've selected has the same on-disk representation in both source format and metadata format, IC should be able to use the Metadata API to deploy it all. And if that's not possible, IC will just use the
force:source:deploy to take care of it.
Taking this to the logical extreme, though, IC could send everything via the API if it converted source format to metadata format as it builds its deployment archive. That's a much more involved piece of work, though, and the first phase already addresses the primary use case of interactive development just by virtue of the metadata types that it already handles (Apex, VF, Aura, and LWC). I'll start there.