OK some basic understanding to start
In games development there is no such thing as best practice unless the given need for functionality is with in some kind of context in with a purpose of design needs to be served. A way of saying that there is no good, better, best with out context so in general be it a state machine or montage but since you ask
For example, why wouldnt you just use a state machine to play the start, loop the middle based on the number of shells left to load, then play the end, and back to idle. What im confused is fundamentally why state machines are a worse or better choice than a montage.
With in that context there is no telling how many sequences the reload of a shot gun needs to make depending on how many shots the player has made as to reload timing based on what it takes for a full reload. If the player has made 3 shots of a 5 shot load then only 3 cycles are needed where if a full reload is required then the reload will cycle 5 times.
Why do it all with in the same montage?
A typical problem is if a migration path as to a state change it can cause the take to pop is part of the mechanic is to use the reload as a cool down and lock the reload into the montage until the cycle is complete.
The big thing though is a montage is considered an action state which can occur at anytime during a locomotion state.
You could do the same function in a state machine but doing so makes the reload function a unique requirement as to an action state change that can be handled by a single montage slot. You have 100 action states using state machines you would need 100 migration paths for each state change. With a Montage you can add thousands of action state changes using just one slot.
So in general anything locomotion related state machines work best for the most part where for action states montages as they can be layered at any point with in the locomotion state.
As general advice learn animation layering and what it is with in Unreal 4 as anything else after that would make total sense. Much easier to decided what to do with in a context of purpose