This is a working example of the google maps api with requirejs using the async plugin.
If you add:
google.maps.event.addListenerOnce(map, 'idle', function() {
delete window.google;
});
You can see that the map loads, but there are still google files being loaded to the dom, that will look for that var. So the map could get fuzzy, or there could be missing patches of the map.
prereq npm install -g requirejs
r.js -o ./src/build.js