Style nit:

BTW, I see you went with the factory pattern. But you then exposed loadScript as part of the interface. Was that your intention? 

And also it's strange to have loadGoogleMaps and asyncLoad as exported functions. I somewhat like the idea of just asyncLoad and users using the right type.


    angular.module('kexAsyncLoader', []).factory('$kexAsyncLoader', function($q, $rootScope, $window) { 
        function loadScript(type) {
            ...
        }
        return {
            function asynchLoad(type) {
                ...
            }
        }
    }