Sure. Many PBXes, including nearly all cloud systems, run on VMs. However, you need a VM that can boot from an ISO file, e.g. VMWare, VirtualBox, Hyper-V, KVM.
As you know, Google has stated that this use of GV violates their ToS. Even if you could get past the current technical barriers, you’d be facing a moving target and it wouldn’t be fun.
With the vast majority of VoSPs, you don’t need a PBX; just configure your SPA to register to their service. A service with voicemail, failover to mobile, spam filtering, etc. won’t cost much more, especially if it’s almost never used.
Callcentric is IMO a top class provider with all these features. With a combination of https://www.callcentric.com/rate/plans/north_america_basic/ and https://www.callcentric.com/dids/dollar_unlimited_phone_number , your monthly bill would be $2.95, provided that you use fewer than 120 non-toll-free outgoing minutes. You could forward your GV to CC so you’d still have a local number.
With http://anveo.com/consumer/default.asp , you can get a metered US number for $0.50 and E911 service at $1.50, for a total of $2 monthly, though you’ll pay $0.01/min. for every call in or out.
There are many lower cost services, but they generally don’t include or even offer 911 service, which I strongly recommend for all home phones, even though you can reach 911 on your mobile. Once properly set up, a 911 call from the VoIP line will immediately display your home address to the dispatcher.
Inexpensive services without 911 include Localphone ($0.99/mo. for unmetered incoming; $0.005/min. US outgoing; toll-free calls are free). https://signalwire.com/ has metered US numbers for only $0.08/mo.; $0.00325/min. incoming and $0.0072/min. outgoing. They recently started offering 911 but have not posted pricing or technical details.
You can get a completely free incoming number at http://www.ipcomms.net/freedid ; outbound is $0.01/min. (or use a different provider for outgoing).