Switching between queries with "date  now" slows down the performance a lot
You can't get 10 microseconds -- there is just too much overhead in performing a query.  You can get about 1 millisecond.  But you will need INDEX(datetime), at which point, the LIMIT 1 queries will probably run in about a millisecond.  The first query will take an amount of time proportional to the number of rows returned.  If it is a million rows, it may take seconds.

Or perhaps you have the "Query cache" turned on.  It should probably be turned off.  You are probably updating the table a lot; the QC gets flushed for every write.  So 10us will not be consistent, only if no writes happen since you last performed exactly the same query.

You "want the first two..." -- But the answer to the second one is included the first.  And if you add ORDER BY datetime, then it will be the first row.

MySQL "never" needs the index to be rebuilt.

Do not use MyISAM; switch to InnoDB.

One thing that may be happening.  With MyISAM there is only "table locking".  If a lot of writes are coming in, your SELECT could be held up waiting for them.  (Not a problem with InnoDB.)

How many rows in that one day plus one second?

Are those the actual queries?  Or are you limiting to a specific user.  (That would radically change everything I have said.)

If you want to discuss any more, please provide SHOW CREATE TABLE and tell us approximately how many rows in the table.