You only have access to the Revit API in a valid API context. Revit only gives you access to the API context in these specific ways: custom commands, updaters, external events (which are not actual .NET events), various .NET events (most notably Idling, DocumentOpened, and DocumentChanged), and custom external servers/services.
In your example, when Revit is waiting for a point click inside its wall command, it will not provide API context to any add-ins.
As far as I know, the only way you can have access to the API context in relation to a Revit command is through an Updater or the DocumentChanged event. However, these only run when a transaction has been or is being committed. There are probably some Revit commands that use (or can use) multiple transactions, in which case the updater or DocumentChanged event will run while the command is still running (well, technically every command is still running while its transaction is being committed but many exit after it has committed).
I am not aware of any way to get what command committed the transaction that triggered an updater or is responsible for a DocumentChanged event. It might be possible to check the latest entries in the journal file, but I am not sure it will be up to date with the current/latest command--it may just show the previous command.