Well, your example, specifically the "to_timestamp(trunc(sysdate -3))" part of
select sys_extract_utc(to_timestamp(trunc(sysdate -3))) from dual;
fails for me on 19.4 also. If I do a "show nls" in the worksheet I see that
NLS_DATE_FORMAT rrrr-mm-dd hh24:mi:ss
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
do not match up, which I think is required by the to_timestamp documentation:
So just go to your preferences and make those two match and all will be fine. Here are my original settings, but after making "Timestamp Format" and "Date Format" the same, the SQL works fine.
Edit: I have seen complaints about 20.2 not migrating all settings from prior releases. That could be what is happening in your case, or perhaps you just made some change and forgot about it.
You are absolutely correct. Thank you very much, Glen!