Change this:
private async void load_feature_layer_extras(int layerId, string layerName)
to this:
private async Task load_feature_layer_extras(int layerId, string layerName)
And then put "await" in front of all your calls to load_feature_layer_extras.
As much as possible you should/must avoid "async void". It can cause a lot of problem - especially if one layer fails to load. When you can't avoid "async void" (usually in event handlers), make sure you try/catch any awaits.
I would really encourage you to watch the following short series on use of async/await:
Six Essential Tips for Async | Channel 9