前置詞としての「by」と「before」の意味は多少似ています。ですが、一般的なルールとしては、「before sunset」は日没前にタスクが準備され、完了していなければならないという意味になり、「by sunset」は日没を含む日没までの間のどこかでタスクが完了していればよいという意味になります！
例: Please complete your homework before Monday.（宿題はこの日までに準備ができていて、完成していなければなりません。）=> 月曜日前日までに宿題を終わらせてください。
例: Please complete your homework by Monday.（宿題は月曜日までに完了していなければなりませんが、これは月曜日も含みます。）=> 月曜日当日までに宿題を終わらせてください。