When should I use hook_field_attach_presave(), and when hook_entity_presave()?
It depends on what type of data you are trying to modify.  Some entities are not fieldable. Those entities would never call hook_field_attach_presave() where as they would call hook_entity_presave().

If you are modifying an entity's base properties such as 'title', you should use hook_entity_presave(). If you are modifying the fields attached to an entity, you should use hook_field_attach_presave().

Keep in mind that other modules might be using these hooks as well. They would expect you to be making your modifications to the type of data in its respective hooks.