Why doesn't the draw callback update with mousemove?
Use the event from the modal method.

Will get back to this when I find the link about full event.  The event in invoke doesn't much care about mouse moves, rather a shift click or which button, where as the "full event" is available to the modal.  Try script below, a quick hack to use modal event when setting up handle.

import bpy
import bgl
import blf

def draw_callback_px(self, contex, event):
    font_id = 0
    blf.position(font_id, 15, 30, 0)
    blf.size(font_id, 20, 72)
    blf.draw(font_id, "%s %s" % (event.type, event.value))


class ModalDrawOperator(bpy.types.Operator):
    """Draw a line with the mouse"""
    bl_idname = "view3d.modal_operator"
    bl_label = "Simple Modal View3D Operator"
    _handle = None
    def modal(self, context, event):
        context.area.tag_redraw()

        # Add the region OpenGL drawing callback
        # draw in view space with 'POST_VIEW' and 'PRE_VIEW'
        if not self._handle:
            args = (self, context, event)
            self._handle = bpy.types.SpaceView3D.draw_handler_add(
            draw_callback_px, args, 'WINDOW', 'POST_PIXEL')
        if event.type in {'ESC'}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}

        return {'PASS_THROUGH'}

    def invoke(self, context, event):

        # the arguments we pass the the callback
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

def register():
    bpy.utils.register_class(ModalDrawOperator)
def unregister():
    bpy.utils.unregister_class(ModalDrawOperator)

if __name__ == "__main__":
    register()