Strafing aircraft must approach within small arms range. Most important requirement is protection of pilot against rifle/LMG rounds.
Smaller is better. Larger aircraft such as Ju-88 and B-25 can strafe just fine but they make large and expensive targets.
You might surprise the enemy once but if you come back for a second strafing run every soldier on the ground will be firing at cyclic rate. So you want enough firepower to get the job done with a single pass.
And the winner is....
Fw-190F. Well protected, heavily armed, small and fast. Wing hardpoints should contain cluster bombs, rockets or additional cannon for this dangerous mission.
Well, simple example: Il-10 prooved quite formidable in Europe.(spring '45) (on low level strafe runs it is more or less analogue to fw-190f). A-20 B-25 of VVS, when tried for ground attack - happened to be kamikaze crafts(plus found to be not too responsive at low heights and low speeds), and transfered to NBAPs(night bombing regiments).
The very same Il-10, summer '45, against japanese: heavy losses(sunndenly for soviet AF) against japanese shipping&ports, for moderate results... and the very same soviet A-20s(strafing, skip-bombing) - very effective, good results, low losses(reports about extreme sturdiness). And this is not simply about ground vs. sea targets - much slower and weaker protected Il-2s were quite effective against shipping(Baltic).
Paradox?
No. Different targets, different conditions, different AA, different all.
So, for anti-ship work- we need, imho, 2-engined sturdy(yet as small as possible) airframe with heavy armament. My choice - probably, late Beaufighters.
Against logistics, transport - late-war fighter bombers(single engined, resonably sturdy+as fast as possible at ground level) with good payload will do(phoon/pest, Thunderbolt, Fw-190).
For point targets at frontline - Il-2(10), Hs.129B. Against softer targets Il, for tanks - Henshel.
Universal solution - well, AD-1 Skyraider. =) But too late for ww2.