Custom VBO action fails silently / works with AJAX error in Views Admin
The malfunction was due to the VBO form appearing inside another form. I changed the page callback to be a regular function (not form builder) that loads the block view and actions are working.