Rapidly - speed is relative IMO Policy Supported Push is the fastest. It initially pushes the distribution package to all devices in the target list, when finished it changes to a required policy to handle any machines that were off/could not be accessed during the initial push. You can also tune the delivery method number of computers for distribution: Controls the maximum number of devices that can simultaneously receive the software distribution - higher number faster saturation/more load on the server.
Agreed. Speed is a relative term.
By using a policy you are deciding you are willing to wait until the next time the policy agent checks in. This may be set to once per day and when users log in. Only you can say if this is fast enough.
The use of push technology can speed this up in many cases since it will instruct the machines to install immediately if it is for them. Depending on what it is you are trying to do, the policy supported push is a good way to go about it unless there is some reason that prevents you using push.
If you have a very mobile environment then it may be that not many systems are around an any one time so in these cases you may be better off just pre-populating the environment with a multicast cache only push so that when the policy does launch, clients will get the data from peer machines rather than across slower links.
If you really need speed and policy-only distribution then i would suggest you review the intervals at which your clients check for updated plicies and make this window smaller. There is no real fixed way to decide what this should be but just be aware that the more frequently it checks the higher the load on the core. Maybe every 3 hours would be good for you? if so, then update your clients local scheduler tasks to have a shorter interval.
Always us a "Run from source" delivery method and it will be faster.
However, like stated, you still have to wait for the client to check in for policies.
How long does it take to kick in the policies?
It really depends. You need to take a look at your agent configuration. if it has not been modified to suit your needs by you or your original ESP then it will be set to default values that run once per day. (See below). Sounds like you could do with getting this set to run as a user logs in (watch for additional overhead at startup time though) or perhaps to increase the frequency by changing the settings. Check what you have it set at and decide if you are patient enough to wait a whole day.