You can use an asset like Beautify. It is 35$, but it does work with single pass rendering and I have personally tested it with steam VR. Its performance hit is fairly low (depending on which filter you are using). It also seems to not have any issues with the lab renderer. It has vignette with various options that can be set and changed during run time.
Put the script on the main camera eye of the VR rig. Create a new FSM on an object. Create a new state. Drag and drop the script FROM the main camera eye (not from the project browser), onto the state (where you normally have all your actions setup). You will then get a get/set option for the script. Choose set. Look for vignette. Set the bool to true or false as necessary to turn on and off the vignette.
Create a mask for the vignette (has one by default but you can change it from the inspector easy). Turn up and down the alpha of the black color to make it cover more and more of the screen and eventually fade completely to black.
I also use playmaker to disable the script when not in use to save resources.
As for the playmaker action to use over time. You could create a look with a wait state. Ie, -5 alpha, wait .1 seconds, repeat. Then do a int check to see when it reaches -100 and finish. Or look into a int lerp or float lerp.
https://www.assetstore.unity3d.com/en/#!/content/61730