move off-heap free() to maintenance thread