Builtin mappings are always there, they can't be unmapped, only overridden.
The intend of <wait> is to resolve input ambiguity between user and builtin mappings and doing nnoremap <space> <nop> turns it into an ambiguity between two user mappings in which <wait> doesn't play a role.
Because Lua can register user mappings whose behaviour is closer to builtin mappings, a hacky workaround like this makes <wait> work (followedby is what makes it apply):
vifm.keys.add {
shortcut = ' ',
modes = { 'normal' },
handler = function() end,
followedby = 'keyarg'
}
I'll think about either extending the meaning of <wait> or introducing another flag that applies to user mappings in the next release.