Ben, Louis,
I recommend you attend the Contact Center Administration class from Genesys Beyond as this is covered in that class.
If you set Optional, the Agent does not have to select a Wrap-Up (and the call does not get a code at all if they don't). If you set it to Mandatory, then it will always get a Wrap-Up code.
Mandatory Discretionary allows the agent to take as long as they want / need. In your case, Ben, that looks like what you were using with the 25-minute ACW.
Mandatory Time-Boxed (both versions) set a limit on how long the agent has to enter the code. If they fail to do so within the time specified, the system sets an automatic code, which you can report on and then "deal with" the agents appropriately.
The difference between "Time Boxed" and "Time Boxed No Early Exit" boils down to labor laws in your area. In the case of the former, once the interaction is wrapped up, the agent becomes available again immediately for the next call. With the latter, they still have to wait for the timer to expire, thus enforcing a break between interactions (which, as I said, you may be required to ensure happens.)
I hope that explains the differences between these 4 modes.
HTH