I'm an idiot. I've used this before and just remembered. You can pass a string containing newlines thus:
problem_data <- read_csv("ID, Type, Value\n1, 27, Startup\n2, 28, Load system\n3, 28, Initialise system\n4, 10, Processing data\n5, 10, Processed data, written result to file\n6, 30, Shutdown")