OpenLayers with Google maps API

This is my thing, we run a web app built as an Open Source Geo stack, the basics being; postGIS, GeoServer and OpenLayers.
This is the rub, Google maps base layers are arguable the best looking and most authoritative available. Sadly it's not simple to integrate into our product based on the Google Terms of Use.
To use Google base layers, you must use the Google Maps JavaScript API library.
NOTE: You could use Google tiles directly in OpenLayers, but this is against the Google Terms Of Use.

We use the OpenLayers v.3 (OL3) library for our slippy map UI and to consume web map services along with additional libraries for other features, like a layer switcher and pop-ups.
When we first looked for a solution a couple years ago, the answer was to use both libraries OpenLayers w/ Google maps API and to put the Google map base layer behind OpenLayers. We decided this was a no go with the extra work to integrate w/ the other map functionality, additionally there was also a device specific visual lag between maps while scrolling and panning.
At his point in time there is a fork of the OpenLayers 3 library, that integrates with the Google map API, (ol3-google-maps.js), this basically does the same as above but is integrated to the OL3 api, but does not support all the features we use in OL3. I spent some time and was able to display goggle base layers in our OL3 map but had lots of issues. I was able fix or workaround these issues one at at time, but with more work to do I again suggested we abandon this task for the time being.
Additionally it should be noted with the library being a fork of OL3, the developer and user base for the software is significantly smaller, foretelling less support or development on that library in the future.

It would be possible to use the Google API or layers, but it is was low hanging fruit to be easily implemented into our current project without significant work.
Moving forward there is the possibility of using the Google Maps JavaScript API as our foundation, or in concert with OL3+. This would be dependent upon being able to use all the services we currently do to serve map layers as well as have the time to develop an integrated solution.
It must be noted that the Google Terms of Use are restrictive for a commercial product, so think before you leap.
Another note, OL3 is now superseded by OL4, that is supposed to be very simple to update as most API calls remain the same. Additionally OL5 is underway as well.