Roman, I was finally able to come up with a solution for this issue:
a) Configuring Kentico to create a category list with the following format for cateogry URLs: /pagename/categoryname vs. /pagename?categoryname=categoryname
b) Configuring the page to have an alias to resolve that pagename/categoryname alias.
The first issue (a) required that I clone the Category List webpart - naming the new web part "CategoryListCustomURL" - and then modify the line in the CategoryListCustomURL.ascx.cs file :
url = URLHelper.AddParameterToUrl(url, "categoryname", category.CategoryName);
to this:
url = "/PAGENAME/" + category.CategoryName;
Then configure the new Category List Custom URL web part to "Use code name in URL".
The result is that the new list is created with the category link in this format: /pagename/categoryname
For the second issue (b) - I found that putting the /pagename/{categoryname} in the path or pattern field of the page's Properties > URL tab didn't work as smoothly as I would have liked.
The issue I ran into was that from the Category List the page rendered correctly - but THEN the page URL in the main menu was modified to retain that format - /pagename/categoryname - basically making it impossible to get back to just the /pagename page.
I found that the only way to avoid this was to then remove the /pagename/{categoryname} from the path or pattern field and save the page again.
This resulted in Kentico automatically creating an Alias for /pagename/{categoryname} so the cloned Category List webpart could resolve the links correctly - AND the /pagename URL in the main menu was not impacted.
It was an interesting excercise - and seems almost like there is a bug or conflict in Kentico that causes this behavior. Regardless - I was able to resolve it and now the Category List links work as required.