Regarding questions 1 & 2:
I was not clear if the formulas you gave (=IF(F2="", "No", IF(G2>=H2, "Yes", "No")) are working or not.
Times in Excel are stored as the decimal part of a number and dates are in the integer or whole number part. You can have unexpected results when a time is displayed but there is also date information which you can't see. This can result in unexpected results such as 0:45 is not equal to 0:45 (because they are on different dates).
To overcome this use modulus division (and divide by 1), to return only the decimal part of the value
You don't need the intermediate cells such as E2-F2 or a cell holding 0:45
As Excel times are fractions of a day (0.5 is 12 noon, i.e., half way through the day) you can create the 45 minute or 15 minute value right in the formula as follows:
=IF(F2="", "No", IF(MOD(E2,1)-MOD(F2,1)>=(45/(60*24)), "Yes", "No"))
If you want to include the date in your calculation, then you will need to include controls on date and time entry to be sure that the date part is what you expect. (using mod() removes the issue, but then you need a further tweak to the formula to handle time differences that span midnight).
The formula including any date difference is just:
=IF(F2="", "No", IF(E2-F2>=(45/(60*24)), "Yes", "No"))
I still have to look at question 3, but its time to fire up the BBQ, so it will have to be tomorrow, but someone else may have answered by then !