Levers can land and will place themselves on the surface, but buttons won't do the same.
1. Create a falling entity spawner that spawns a button.
2. When it lands, it won't place itself on any surface. Even if the Data value is set correctly to match a land-able surface.
3. Levers will correctly use their "Data" NBT tag and place themselves on a surface in the correct orientation.