I found the problem and the solution!!
There are entries in the ModuleContols table that takes care of the "magic" that I was missing that links the Module Action to the control that should handle it. In this case, including "Import" in the URL causes the ImportModuleDefintions control to handle the request. I'm sure many others are aware of this, but I'm a DNN newbie. Anyway, the fix...
There appears to be a bug in \Providers\DataProviders\SqlDataProvider\04.06.00.SqlDataProvider
The important lines are:
declare @ModuleDefID int
select @ModuleDefID = ModuleDefID
from {databaseOwner}{objectQualifier}ModuleDefinitions
where FriendlyName = 'Module Definitions'
IF NOT EXISTS (SELECT ModuleControlID FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ModuleDefID = ModuleDefID AND ControlKey = N'Import')
BEGIN
insert into {databaseOwner}{objectQualifier}ModuleControls ( ModuleDefID, ControlKey, ControlTitle, ControlSrc, IconFile, ControlType, ViewOrder, HelpUrl, SupportsPartialRendering )
values ( @ModuleDefID, 'Import', 'Import Module Definition', 'Admin/ModuleDefinitions/ImportModuleDefinition.ascx', NULL, 3, NULL, NULL, 0 )
END
GO
The "IF NOT EXISTS" line should reference the @ModuleDefID variable. The unfortunate part is that this error will never throw an error and thus go undetected. Apparently for a very long time.
So the corrected script is:
declare @ModuleDefID int
select @ModuleDefID = ModuleDefID
from {databaseOwner}{objectQualifier}ModuleDefinitions
where FriendlyName = 'Module Definitions'
IF NOT EXISTS (SELECT ModuleControlID FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ModuleDefID = @ModuleDefID AND ControlKey = N'Import')
BEGIN
insert into {databaseOwner}{objectQualifier}ModuleControls ( ModuleDefID, ControlKey, ControlTitle, ControlSrc, IconFile, ControlType, ViewOrder, HelpUrl, SupportsPartialRendering )
values ( @ModuleDefID, 'Import', 'Import Module Definition', 'Admin/ModuleDefinitions/ImportModuleDefinition.ascx', NULL, 3, NULL, NULL, 0 )
END
GO
You'll have to replace the stuff in curly brackets with the settings appropriate to your installation.
Has this bug really gone unnoticed and unfixed since 4.6.0? Weird.