SendAction() adds a message to the queue, which next frame is processed and calls OnAction().

i.e. the callstack looks something like:
```
CApplication::Process()
....
CApplication::OnAction()
CApplicationMessenger::SendAction()
...
CApplication::Process()
...
CApplication::OnAction() // called only because we queued up the action in the previous call to OnAction() - no other reason at all.
...
```
This is an infinite recursion.  It just happens slower as there's a forced Sleep() or wait on vsync inbetween the OnAction() calls.