Is there a way to snap face to the cursor without all its vertices collapsing to a point?
You are very close.

The selection mode makes no difference.
All you have to do is press ShiftS > Selection to Cursor (Offset).

Or you could Press the Offset button in the tool options (that option is there whether you use "Selection to Cursor" or "Selection to Cursor (Offset)").