Fixed-timestep everything is simple, classic, and best. Preferably synced to video refresh.
I've learned not to bother with variable timesteps or interpolation. It's a lot of complication for little/no benefit. If you can't quite keep up with 60 fps, you get stuttering. You can smooth it out by skipping a few renders, but if there's more than~30ms lag, let it freeze (unless it's network multiplayer). If it keeps happening it'll look jumpy, so drop your framerate or turn off some effects; 30 fps is better than 55 fps.
If input timing is crucial, you could run several physics updates per render frame, or if possible factor the input event timestamp into your calculations.