So I’ve been fiddling around and I think I found a way to do this in BP alone. We handle all input in our player controller and we create a [key] and a [boolean] variable for each pawn action. Each key stores the key used for a specific action. Each boolean specifies whether its respective key is configurable at the current time. For example, if the user traverses the menu screen and hits a widget button to bind a key, the corresponding boolean would then be set to True. We then use the AnyKey event to read in the newly binded key. Finally, every frame we handle our input by checking which action keys are pressed. Here is a dummy example with a configurable key to make a pawn jump.
http://i.imgur.com/NdyKFJe.png
Instead of a menu screen, we simply make the key configurable when the spacebar is pressed. Nodes like WasInputKeyJustPressed, IsInputKeyDown, GetInputKeyTimeDown, GetInputAnalogKeyState, etc. can be used handle the input. This process is easily generalized to work with multiple actions (though it will probably need to be organized into separate functions).