Accessing Vector Pass Data in python in background mode
In the end the solution was to use multilayer EXR output by constructing a simple node graph automatically in python (Blender 2.78).

bpy.context.scene.use_nodes = True
bpy.context.scene.render.layers[0].use_pass_combined = True
bpy.context.scene.render.layers[0].use_pass_vector = True

tree = bpy.context.scene.node_tree
rl = tree.nodes.new('CompositorNodeRLayers')
rl.location = 0, 200

output = tree.nodes.new('CompositorNodeOutputFile')
output.location = 200, 200
output.format.file_format = 'OPEN_EXR_MULTILAYER'
output.base_path = output_folder

links = tree.links
links.new(rl.outputs['Speed'], output.inputs[0])