For Point1,
In the WMI connection,
I used the expression editor to assign the ServerName dynamically like
Expression for WMI Connection is like that

Expression

ServerName @[User::WMIConnection]

I have verified the my @[User::WMIConnection] variable has the proper server name like \\servername but it is not poulating the serverName filed of WMI connection. I used workaround to use Script Task to set the ConnectionString property.

For Point2,
I want only data for 20061108 but this also includes the data for 20061107 too.

SELECT ComputerName, Logfile, RecordNumber, Category, CategoryString, EventCode, EventIdentifier, EventType, Message, SourceName, TimeGenerated, TimeWritten, Type, User FROM Win32_NTLogEvent Where LogFile = 'System' and ( TimeWritten >= '20061108' and TimeWritten < '20061109' )

For Point3,
If there is no data using the above query, it will fail with Operation is not valid due to the current state of the object
I want my package to continue as I have to query the log for 10 different servers if this condition occurs.