Behaviour
I want to use generic return types.1
Not possible. Have a look at this ticket.
Can I use asynchronous code in behaviour methods such as calls to external tools?
Be careful when doing so. Make sure to not mix concurrent locking aspects such as write and read actions into behaviour methods. It should always be assumed that you have the correct lock in this methods. Move the code concerning the concurrent access for example into a background task. More information can be found in the official documentation.
Can I access the parent in the constructor?
No, it doesn't work because the node is not attached yet (documentation). Use for example a node factory to access the parent instead.
Can I use a more specific return type while overriding behavior?
No, it is not possible. Have a look at this ticket.
Can I use variable arguments (varArgs) in behaviour methods?
No, it is not possible. Have a look at this ticket.
Can I enter a throws clause in behaviour methods?
No, it is not possible. Have a look at this ticket.
Where can I save temporary information about nodes?
Consider saving temporay data about nodes in annotations and user objects (node/.putUserObject, node/.getUserObject) instead of introducing properties. For the generator consult the section "Transferring User Data" of the generator documentation.