Replace BaseExternalTask.build_architecture with an input field
the build_architecture() method can be replaced with a task input field, which could lookup the fallback value using the database if needed and, after #1346 (closed), also persist the computed value in dynamic task data