When you execute a gp tool you get back a result object:
var result = await Geoprocessing.ExecuteToolAsync(tool_path, ....)
The result object, among other information, contains the messages returned by the tool.
You can get them by Messages property as follows:
var messages = result.Messages
In our SDK (ArcGIS Pro 2.4 API Reference Guide ), if the link does not take you directly to IGPResult, browse to:
ArcGIS.Desktop.Core Assembly > Namespaces > ArcGIS.Desktop.Core.Geoprocessing > Interfaces > IGPResult > Members