Looks like Hilton has the edge although not as much as the 3 nights at $150/night example stated. For apples to apples comparison, lets convert the hotel points to miles.
And, a SPG member earns 2 points per dollar (3points/$ for Au, Pt) at a Starwood hotel so 3 nights at $150/night is 900 SPG points (1350 for elite). This is 900 (or 1125 miles if xfer 20K points with 5K bonus, or 1687 for elites).
If exchanging 50K points, the Hilton earnings of 4500 points and 500 miles for the 3 nights at $150/night is 4500/5=900 miles + 500 miles, or 1400 miles. If not exchanging 50K miles, the conversion of 4500 points gives only 675 miles which plus the 500 double dip miles totals 1175 miles.
A SPG elite however, would come out ahead at a Starwood hotel for this example. Hilton comes out ahead mainly because of the 500 mile double dip. If the hotel bill is very high because of a long stay (or because the rate is very high!), then the SPG points will overtake Hilton because the 500 Hilton double dip miles become a smaller part of the total.
One could setup a spreadsheet to do all these calculations and figure out which is better for any stay given the room rates and duration.