From your description, it looks the slow is because the query speed, I am not sure whether your database is in the same machine with your application, so maybe there is another network speed problem here. If you want to enhancement the performance, please try to find where is the mainly problem so we can give you some advice about it.
MsSql2008FeatureLayer is a special layer, it have its own event, you can double check the request it sent here:
(msSql2008FeatureLayer.FeatureSource as MsSql2008FeatureSource).ExecutingSqlStatement
And it don't have a event for let map know whether progress finished, but maybe this event as below should be helpful:
(msSql2008FeatureLayer.FeatureSource as MsSql2008FeatureSource).DrawingProgressChanged
I think you can try to build your logic based on it.