DROP vs DELETE vs TRUNCATE for staging data
The "recommended way" is to design the best solution given the relevant factors.

Options #1 and #2 are unlikely to be ideal as they result in a lot of unnecessary I/O.  #3 is what would be best in most situations, but as far as I/O is concerned it is not much different from #4.  So performance-wise, #3 and #4 can considered to be the same.  The additional I/O to drop/create a table as opposed to just truncating it is insignificant compared to the I/O of the typical data load.

Your comments seem to indicate that you need to make changes to the staging table quite often, and if that is the case, then #4 may be best for you.  Since it's a staging table, it is unlikely that permissions are complex, and if it's in a dedicated staging database where staging account is the only ID that has read/write, then you wouldn't even need to explicitly set permissions when the table is created.

Option #5 is a non-starter unless you have some specific reason to create a new database each time.