Richard,
From what I can see within your screen images, the Tasks that are not showing executable have a link (Predessor) that has not been completed. If you have a link between tasks using FTS (Finish-To-Start). The Successor tasks cannot start until the predessor is complete...Example from your image...
You have a project named 'GABLES - FXI PRO : Onboarding with the following Milestones...
Customer Kickoff Call
Solution Onboarding
Client Onboarding
From what I see, though you are able to add time (Actual Effort) to Successor Tasks (i.e. Solution Onboarding), the execution column does not show as executable until the Predessor Task is completed, then you will see the Solution Onboarding Milestone as executable (as expected) and once this task is completed, then Client Onboarding will show as executable.
The fact that you can add Actual Effort on a Task before it is executable is a separate conversation and actually has nothing to do with the way the executable column is reported.
On a side note, if you do not want to be able to report effort on Successor tasks before they are executable or predecessors have completed, a validation rule can be created to block adding effort to work items that are not executable.
Sincerely,
Boris Krutiy