A modal operator is just an operator that does things a little differently. While there are tons of ways to setup a modal operator, it doesn't have quite the same clearly defined lifetime like regular operators. For example, if you wanted to move an object with a regular operator, the implementation would do something like this the following and would execute in a fraction of a second.
- Get how far you want to move it
- Move it
- Quit, and return what happened (success, cancelled, etc.)
On the other hand, a modal operator that does the same thing has a completely different functionality. It may take a very long time before the user has confirmed the motion and stopped the execution, but Blender shouldn't become unresponsive if it is written correctly.
- Start the modal operator
- Interact with the user in real-time to update the position
- Stop (generally when the user ends the process) at some point and return the results
However, not all modal operators take over all user interaction like you may think. For example, you can have a modal operator that is always running and displays a clock in the 3D viewport. You could have an operator that shows the bounding box and wireframe for selected objects.
Here is an example of a modal operator that does both of the above.
So the real answer to What do the modal operators do? is simply an operator that runs in the background.
The Blender Python docs put it this way:
This operator defines a Operator.modal function which running,
handling events until it returns {'FINISHED'}
or {'CANCELLED'}
.
Grab, Rotate, Scale and Fly-Mode are examples of modal operators. They
are especially useful for interactive tools, your operator can have
its own state where keys toggle options as the operator runs.
Here is a useful post by one of the Blender developers about all of the "operator methods" including modal:
https://blender.stackexchange.com/a/19431/28015