Executable Objects come in different classes, depending on the functionality you need. On a technical level, all of these classes are Blueprintable Async Actions with additional functionalities and a custom node.
The ExecutableObject base class is parent to the ExecutableObjectWithDuration class, which is in turn the parent of ProgressObject. Each of these classes gradually adds more functionality that users can include or leave out where needed. This article contains an explanation on each of these classes, and general advice on when to use each one.