Another way to do it that would work is to explode the solid and iterate through the DB Object Collection until the region in which the endpoint lies is found and then extrude that region along the path. Then dispose of the DB Object Collection. This would work equally well for faces with circular or curved boundaries.
However, in my quest for more complete understanding of the API, I am still puzzled as to why the method in my original example is not working.
The exception occurs at the line,
Dim FaceSubEntIds() As SubentityId = New SubentityId() {acFace.SubentityPath.SubentId}
The exception message doesn't give details, it simply says "Exception of type 'Autodesk.AutoCAD.BoundaryRepresentation.Exception' was thrown."
From my testing, it appears that the curve used as the path does not have to be database resident. Also, concerning the curve class, from the documentation, "The Curve class is the base class for all the entity classes that are variations of a curve such as Arc, Circle, Ellipse, Spline, and others." Lines and polylines can also be curves. The extrusion methods require a curve as the extrusion path.
Thanks for the comments so far!