Unlike the Army, the Marines have a very strict limit on the number of personnel in each MOS at each rank. If he got promoted to Sergeant in less than four years, that means:
A Gunnery Sergeant machinegunner had to be promoted to either Master Sergeant or First Sergeant. Once a Marine is promoted to the rank of Gunnery Sergeant (equivalent to an Army Sergeant First Class, a Navy Chief Petty Officer, or an Air Force/Space Force Master Sergeant) they are given the choice: when you are promoted to the next level would you prefer to work in leadership or in a technical role? They need both so there's no real pressure to be a leader if you'd rather run the motor pool. How this affects your promotion is if a Marine Master Sergeant (technical track) retires and you preferred leadership track, the most qualified Gunnery Sergeant who elected technical track gets the promotion and you wait until a First Sergeant (leadership track) retires before you move up.
Then a Staff Sergeant machinegunner had to be promoted to Gunnery Sergeant.
And finally, a Sergeant machinegunner had to be promoted to Staff Sergeant to make room for you.
The Marines wait until the MSgt/1Sgt actually retires before they start moving people up. The Army, on the other hand, tends to be a little more anticipatory...if Command Sergeant Major Smith who runs the 82d Airborne Division drops his retirement packet (this is done one year before your requested retirement date) and 120 days before he retires Department of the Army comes in and tells him, "Sergeant Major, if you'll defer your retirement three years we'll give you the 8th Army CSM slot," they'll have promoted all those people to their new ranks but the guy the whole chain was predicated on is now running all the US forces in Korea.