Why can a select statement acquire more than 1 Sch-S lock on one table?
Your query is creating more than one lock because your derived table is getting executed more than once. 

Why the sub-query is being executed more than once is another issue?

Check your execution plan.   its quite possible the Estimated Number of executions on TableImported  matches closely to the Estimated Number of rows for OneOfMyTables
There is some discussion around this here

If you could change the the left join to an inner join, it would only scan (or seek) TableImported once.

As for the difference between Staging and prod... or a solution ¯\_(ツ)_/¯  (sorry)