Good plan. One thing quick thought:
The "site-map" part I would still do, but in another module that doesn't know about ktor. My locations would then probably contain the path. My ktor module would then just receive a List<MyLocation> and perhaps a RequestHandlerFactory where you can create handlers of the various GET,POST etc.
The factory would then take the extracted params as input and give back a generic RequestHandler.
That way both "site-mapping" and handling of requests is decoupled from ktor.