Turns out there was a previous attempt to fix the timezone:
date_default_timezone_set('America/Sao_Paulo');
was called on the init
hook.
When later the correct UTC time, local time and timezone were properly set on the server, this caused a conflict.
Removing this solved the issue.