BindKey ignored in a PlayerController

I have the following code in a PlayerController:

#include "MyPlayerController.h"
#include "Runtime/Engine/Classes/Components/InputComponent.h"
#include "Runtime/Slate/Public/Framework/Commands/InputChord.h"
#include "Runtime/InputCore/Classes/InputCoreTypes.h"
#include "Runtime/Core/Public/GenericPlatform/GenericPlatformProcess.h"

void AMyPlayerController::SetupInputComponent() {
    Super::SetupInputComponent();
    InputComponent->BindKey(FKey("l"), IE_Pressed, this, &AMyPlayerController::doSpacePressed);
}

void AMyPlayerController::doSpacePressed()
{
    GetOwner()->AddActorLocalOffset(FVector(10.0, 0, 0));
    FGenericPlatformProcess::ConditionalSleep([]() {return false;}, 2000);
}

The playercontroller is attached to a movable object in the scene (a basic cube). When run, the cube does not move when l or any other key is pressed.

I have also tried adding a BeginPlay method calling EnableInput(this), which made no difference.

How can I ensure that the object responds, and is there a good strategy for debugging event flow issues such as this?