I can see nothing unexpected. Midnight in UTC is 8 PM the day before in New York, at least in the summer time.

Timestamps are always UTC. This is the reason why your second attempt

    $from = DrupalDateTime::createFromFormat('U', strtotime('last week monday'))->getTimestamp();

can be reduced to 

    $from = strtotime('last week monday');

without changing the result.

So don't convert to UTC timestamps. You can specify the timezone when creating the DateTime object:

    $from = (new DrupalDateTime('last week monday', 'America/New_York'))->render();

results in

    "2022-06-13 00:00:00 America/New_York"

Which will internally use a different timestamp than before, but this is only relevant if you convert it to a different timezone, for example to store it in the database.