I wonder if the timing of the session startup is affecting autologin. Perhaps sometimes the system is not fully ready when greetd tries to log in the user, so it fails.
Try adding a delay to the autologin command and see if it makes any difference.
[initial_session]
command = "sh -c 'sleep 2; sway'"
user = "sjiep"