If I set this to "NO", the newday runonce would no longer trigger on cronjob, but only to the first player playing the game in that new game day ?... do all players have to wait the bunch of newday jobbing time ?...
yes.
cronjob has 1 advantage: there is no player "hitting" it... the server hits it automatically. Hence it always runs on specific times, people logged in or not.
And it is not 1 player stuck until it's done - but all are slower (very, depends on the load).
0 am does not do the trick

if you like, add to cron.php a gamelog entry that the cron worked or not.
14 if ($game_dir!='') {
15 savesetting("newdaySemaphore",gmdate("Y-m-d H:i:s"));
16 require("lib/newday/newday_runonce.php");
17 }
change to
require_once("lib/gamelog.php");
if ($game_dir!='') {
savesetting("newdaySemaphore",gmdate("Y-m-d H:i:s"));
require("lib/newday/newday_runonce.php");
gamelog("Cronjob was tried to execute");
} else {
gamelog("Cronjob could not be run - empty game dir");
}
and
10 if ($email=='') exit(0); //well, we can't go further
to
if ($email=='') {
require_once("lib/gamelog.php");
gamelow("Cronjob failed but no email to report given");
exit(0); //well, we can't go further
}