depending on the program, I believe there are in fact ways to constrain light effects to the pixel grid, I know that Terraria does it if I remember right. might help to study those and see how they did that
If both the game and lighting are rendered to a small texture at 1x zoom prior to be scaled up for display, that automatically constrains the effects to the pixel grid. If rendering to a smaller texture isn't an option (e.g. if the characters should be able to stand "between" pixels, or there are high-res rotations of sprites), then it's still possible - render just the light to a smaller texture, then scale that up for rendering to the final, zoomed in display.
Terraria constrains lighting to the
tile grid. Instead of light being drawn as a bunch of pre-drawn overlays, it is dynamically calculated based on the distance (in whole tiles) of each tile from the light source. There are many ways to render this. The most performant is probably the same method as above, but scaled up by zoom*tileSize rather than just the zoom, so that each "pixel" of light covers a tile. In some engines it's also possible to give individual tiles a tint based on the calculated lighting.
Anyway, I agree with Xorceles that the soft lighting looks out of place. It also goes through the floor and walls, which makes the light look just pasted on rather than like it exists in the scene.
Don't shade using black/grey. The image will look much livelier if you have some hue in the ambient light (the ambient light is what gives shadows their colours). I also think it's best to render both light and shadow rather than just light or just shadow, so that the relatively neutral base art can be be given a nicely contrasting colour scheme by the lighting. This can all be done programmatically.